我有一个类,为了继承的原因,我将数据存储在一个列表中。我想知道,除了创建getter/setter函数和属性为列表中的元素提供别名之外,还有没有更干净的方法?在
例如。。。在class Serializable(object):
"""Adds serialization to from binary string"""
def encode(self):
"""Pack into struct"""
return self.encoder.pack(*self)
def decode(self, data_str):
"""Unpack from struct"""
self.data = self.encoder.unpack(data_str)
return self.data
class Ping(Serializable):
encoder = Struct("!16sBBBL")
def __init__(self, ident=create_id(), ttl=TTL, hops=0, length=0):
self.data = [ident, 1, ttl, hops, length]
self.ident = property(self.data[0])
def __getitem__(self, index):
return self.data[index]
@property
def ident(self):
return self.data[0]
@ident.setter
def ident(self, value):
self.data[0] = value
@property
def protocol(self):
return self.data[1]
@protocol.setter
def protocol(self, protocol):
self.data[1]
我更喜欢一个更紧凑的解决方案作为参考对象标识符同时保持上述包装和拆包的能力。在