关于在Python中创建套接字的问题

时间:2015-08-14 19:39:09

标签: python sockets

您好我是编程新手,并开始学习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()

如果你们中的任何人能够帮助我,我将不胜感激。

1 个答案:

答案 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函数名称。 在任何情况下,它给出了现有代码的数量,我想它可能永远不会改变。