TypeError:“模块”对象不可调用
File "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", line 82, in __init__
self.serv = socket(AF_INET,SOCK_STREAM)
TypeError: 'module' object is not callable
为什么会出现此错误?我很困惑。
你需要知道什么才能回答我的问题?
-
socket
是一个包含class
的模块socket
。你需要执行
socket.socket(...)
以下操作from socket import socket
:>>> import socket >>> socket <module 'socket' from 'C:\Python27\lib\socket.pyc'> >>> socket.socket <class 'socket._socketobject'> >>> >>> from socket import socket >>> socket <class 'socket._socketobject'>
这就是错误消息的含义:
它表示为module object is not callable
,因为你的代码正在调用模块对象。模块对象是导入模块时得到的东西的类型。你试图做的是在模块对象中调用恰好与包含它的模块同名的类对象。这是一种从逻辑上分解这种错误的方法:
- “
module object is not callablePython
告诉我我的代码试图调用无法调用的内容。我的代码试图调用什么?” - “代码正在尝试调用
socket
。应该可以调用!变量socket
是我认为的吗?” - 我应该打印出什么是插座并检查
print socket
- “