在python中导入套接字时,为什么它会跳过socket.bind?
我认为除了bind之外,其他方法都在那里。I类型:在python中导入套接字时,为什么它会跳过socket.bind?,python,sockets,Python,Sockets,我认为除了bind之外,其他方法都在那里。I类型: import socket socket.bind 在python命令提示符中,获取“AttributeError:'module'对象没有属性'bind'” 如果我这样做: from socket import bind 我得到“导入错误:无法导入名称绑定” 否则,dir(socket)返回297,其他一切似乎都正常工作。就像我有socket.socket、socket.setsockopt等一样,绑定并不存在 我在Mint 16运行py
import socket
socket.bind
在python命令提示符中,获取“AttributeError:'module'对象没有属性'bind'”
如果我这样做:
from socket import bind
我得到“导入错误:无法导入名称绑定”
否则,dir(socket)返回297,其他一切似乎都正常工作。就像我有socket.socket、socket.setsockopt等一样,绑定并不存在
我在Mint 16运行python 2.7.5+。同样的情况也发生在Python3.3.2+和同一台机器上Ubuntu12.04虚拟机上的Python2.7.3中
知道发生了什么吗?我可能错了,因为我没有像您可能那样经常使用
socket
模块,但似乎bind
是模块socket
中类socket
的函数。因此,要访问它,您必须执行以下操作:
>>> socket.socket.bind
<unbound method _socketobject.bind>
>>socket.socket.bind
bind
是套接字
对象的方法,而不是模块
以下是创建socket
对象后使用bind
的示例:
摘自
bind
是socket.socket的一种方法,而不是模块中的函数
s = socket.socket(...)
s.bind()
因此,只有创建套接字后,才能将其绑定到地址
参考文献:
希望这有帮助 实际上,它是一个实例方法。因此,如果没有套接字对象,它实际上是无用的。谢谢!那是我的问题。值得一提的是,这一切都源于一个输入错误,我将套接字对象称为“socket”,而不是它的实际名称。我想我今天学到了一些关于python如何组织事物名称的知识。@user3217070,啊,很像ol'
list=[1,2,3]
snafu!
s = socket.socket(...)
s.bind()