我通过套接字发送一个对象,并想知道对象的大小(以字节为单位)。我写了一个方法将对象作为字节返回。在接收方,必须知道对象的大小,所以我导入类并想使用一个常量。为了定义常量,我编写了一个以字节为单位返回长度的类方法,但我不能自己调用类中的类函数。在开发项目时可以更改对象的大小,这就是为什么我动态地计算使用大小的原因。
class democlass():
BYTE_SIZE = democlass.get_byte_size()
def __init__(self, t: int):
self.data = t
def as_bytes(self) -> bytes:
"""
Some struct.pack() stuff.
"""
return objectasbytes
@classmethod
def get_byte_size(cls) -> int:
return len(democlass(5).as_bytes())
import democlass
class server(threading.Thread):
def __init__(self, t: int):
threading.Thread.__init__(self)
self.__sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
addr = (
'0.0.0.0',
self.port
)
self.__sock.bind(addr)
def run(self) -> bytes:
while True:
msg = sock.recv(democlass.BYTE_SIZE)
do_something_withdata()
错误信息:
BYTE_SIZE = democlass.get_byte_size()
NameError: name 'democlass' is not defined