python类常量
作为家庭作业,我正在用python重新实现socket类。然而,我并不精通python。我有一个关于语法的问题 定义使用的套接字时,从python API:python类常量,python,sockets,python-2.7,Python,Sockets,Python 2.7,作为家庭作业,我正在用python重新实现socket类。然而,我并不精通python。我有一个关于语法的问题 定义使用的套接字时,从python API: import socket mySocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)) 然而,我不知道如何定义那些表现生命活动的常量 import mySocket mySocket = mySocket.socket(mySocket.AF_INET,mySocket.SOCK
import socket
mySocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM))
然而,我不知道如何定义那些表现生命活动的常量
import mySocket
mySocket = mySocket.socket(mySocket.AF_INET,mySocket.SOCK_DGRAM))
给出以下错误
Undefined variable from import: AF_INET
Undefined variable from import: SOCK_DGRAM
mySocket类当前看起来像:
class socket:
AF_INET;
SOCK_DGRAM;
def socket(.....
您需要在模块级别定义常量,而不是在
socket
类中:
AF_INET = 2
SOCK_DGRAM = 2
class socket:
def __init__(.....
这些常数是模块级的:
模块1.py
:
CONSTANT1 = 'test'
class YourClass(object):
class_variable = 12
import module1
print module1.CONSTANT1
模块2.py
:
CONSTANT1 = 'test'
class YourClass(object):
class_variable = 12
import module1
print module1.CONSTANT1
Python在行尾不需要分号。看到他们让我很难过-(我知道,我想这只是一种习惯.
socket.AF_INET
是一个模块常量;socket.socket.AF_INET
将是一个类常量。当类与包含它的模块具有相同名称时,会有点混淆。模块级常量通常定义在脚本的顶层,而不是任何具有语句的形式为NAME=VALUE
。类级常量通常在类
块内定义,但在任何方法之外。您可以从套接字导入套接字中添加一个,作为套接字
,以更好地区分套接字模块和套接字类级内容。在中嵌套一些常量是完全合理的一个类作为它们的名称空间。例如,这使得在同一个模块中有两个不相关的类,它们有一个具有相同名称的常量成为可能。例如SIZE
@martineau:当然是这样;但是socket
模块使用模块级常量,如果您要模拟该模块,那么这就是什么你不能用.:-)