TypeError:“模块”对象不可调用

发布于 2021-02-02 23:14:28

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

为什么会出现此错误?我很困惑。

你需要知道什么才能回答我的问题?

关注者
0
被浏览
67
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看