class Enip_Packet():
def __init__(self):
self.create = b'p\x00"\x00\x03\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\xa1\x00\x04\x00F@\xc6\xff\xb1\x00\x0e\x00\x02\x00\x08\x02 \x01$\x01\x02\x00e\x00f\x00'
self.stop = b'p\x00"\x00\x03\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\xa1\x00\x04\x00F@\xc6\xff\xb1\x00\x0e\x00\x02\x00\x07\x02 \x01$\x01\x02\x00e\x00f\x00'
self.reset = b'p\x00"\x00\x03\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\xa1\x00\x04\x00F@\xc6\xff\xb1\x00\x0e\x00\x02\x00\x05\x02 \x01$\x01\x02\x00e\x00f\x00'
self.start = b'p\x00"\x00\x03\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\xa1\x00\x04\x00F@\xc6\xff\xb1\x00\x0e\x00\x02\x00\x06\x02 \x01$\x01\x02\x00e\x00f\x00'
self.delete = b'p\x00"\x00\x03\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\xa1\x00\x04\x00F@\xc6\xff\xb1\x00\x0e\x00\x02\x00\x09\x02 \x01$\x01\x02\x00e\x00f\x00'
def packte(self,mac,ip_range,变量):
想要变量匹配上属性的名字,发送对应的内容,我应该咋实现呀?求解
为什么还要传变量呢?直接把实例的属性传进去不就好了?
比如
def packte(self,mac,ip_range,变量):
print(变量)
a = Enip_Packet()
a.packte(mac,ip_range,a.create)
如果非要另外再定义个变量,可以考虑使用exec函数,把要执行的代码放进去,像这样:
def packte(self,mac,ip_range,变量):
exec(f'print({变量})')
a = Enip_Packet()
i = "create"
a.packte(mac,ip_range,i)
好的,谢谢