您好我是编程新手,并开始学习Python中的套接字编程。我正在阅读一些在Python中创建套接字的文档,并找到了这个基本的简单代码:
import socket
sock = socket.socket()
sock.bind("127.0.0.1",5001)
我对行sock = socket.socket()
感到有点困惑,我们正在创建套接字。
据我所知,当我们导入" socket
"时,socket
是一个类,其中包含许多变量和方法。其中一些方法是bind(),connect(),send()
......等等。
为了访问这些方法,我需要创建一个socket类的对象。现在,创建套接字类对象的语法是:
sock = socket()
这样我就可以通过bind()
访问该类的sock.bind()
方法,这是我的最后一行代码。
但是为什么创建语法的语法是
sock = socket.socket() and not sock = socket()
如果你们中的任何人能够帮助我,我将不胜感激。
答案 0 :(得分:1)
如果您查看documentation,您会看到正确的电话是socket.socket()
。
要了解这是什么,请使用type
功能:
In [1]: import socket
In [2]: type(socket.socket)
Out[2]: type
这表示套件。套接字是模块中的类。
但如果你这样做
from socket import socket
你可以使用
sock = socket()
代替。
另外,style guide表示类的名称应遵循 CapWords 约定。
因此应该可能已被命名为socket.Socket
。
它可以是样式指南之前的名称socket.socket
,或者它模仿它包装的BSD函数名称。
在任何情况下,它给出了现有代码的数量,我想它可能永远不会改变。