污妖王 发表于 2018-9-19 16:14:38

TypeError: 'module' object is not callable

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
为什么我收到此错误?我很困惑。

令狐少侠 发表于 2018-9-19 16:16:33

socket是一个包含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,您可能正在调用模块对象!什么是模块对象?这是导入模块时获得的类型。

此间少年 发表于 2018-9-19 16:17:49

添加到__init__.py,例如:
from YourClass import YourClass
然后,当您将其导入另一个脚本时,您将准备好类的实例:
from YourClassParentDir import YourClass

强人锁男 发表于 2018-9-19 16:20:09

假设YourClass.py的内容是:
class YourClass:
    # ......
如果您使用:
from YourClassParentDir import YourClass# means YourClass.py
通过这种方式,我得到了TypeError:如果你试图使用,那么'module'对象是不可调用的YourClass()。
但是,如果您使用:
from YourClassParentDir.YourClass import YourClass   # means Class YourClass
或使用YourClass.YourClass()就不会报错

www呵呵 发表于 2018-10-10 08:13:04

是滴!呐
页: [1]
查看完整版本: TypeError: 'module' object is not callable