对于不同的类,我对共享对象有不同的设置(例如:地址)。每次调用该方法时,我都必须加强地址变量 s.addr,因为类 ItemA 和 ItemB 将 s.addr 设置为不同的地址。有没有办法简化这种冗余?
前任:
class ItemA:
def __init__(self,s,addr):
self.s = s
self.addr = addr
def a(self,addr):
self.s.addr=self.addr # anyway to remove this line that exist in every method
self.s.run_a()
def b(self,addr):
self.s.addr=self.addr #
self.s.run_b()
class ItemB:
def __init__(self,s,addr): # take same s as ItemA
self.s = s
self.addr = addr
def a(self,addr):
self.s.addr=self.addr #
self.s.run_a()
def c(self,addr):
self.s.addr=self.addr #
self.s.run_c()
ItemsA, B 是随机调用的,因此需要在每个方法中更新地址。
A=ItemA(s,9) # object s, address 9
B=ItemB(s,7) # same object s, but use address 7
A.a()
B.a()
B.c()
A.b()
有关额外信息,它是用 GPIB 控制仪器,每个仪器都有不同的地址。s 期望将通用命令发送到 s.addr 中指定的地址。但对更一般的python问题感兴趣。