我正在创建一个具有一组字段的结构,我想定义一些字段与接收到的输入一样长,而其他字段只有在已为它们提供输入的情况下才会存在(否则应消失)-因此,当我打印结构时,仅会打印相关字段(那些输入或预定义要打印的字段,即使“ 0”也要打印)
class Data (Frame):
_name_ = 'Data'
_pack_ = 1
_fields_ = [
("fc", fc),
("duration", c_uint16),
("add1", c_ubyte * 6),
("add2", c_ubyte * 6),
("add3", c_ubyte * 6),
("fb", c_uint16),
]
def __init__(self, **kwargs):
params = {
'duration': c_uint16(kwargs.get('duration', 0)),
'add1': address_to_ubyte(kwargs.get('add1', None)),
'add2': address_to_ubyte(kwargs.get('add2', None)),
'add3': address_to_ubyte(kwargs.get('add4', None)),
'fb':c_uint16(kwargs.get(fb, 0)),
}
这是我目前的情况。 (我知道这不起作用) 我想例如将持续时间add1和add2字段设置为“ 0”,除非另有定义,仅当接收到输入时add3才存在(如果没有,则根本不应该出现),并且将fb字段设置为大小给定输入的数量(如果不是,则应为“ 0”)