我使用RaspberryPi3和Python来远程控制其他RPI的GPIO。
我创建了一个类来初始化所有Pis的连接和引脚:
class relay(pigpio.pi):
def __init__(self,ip_addr):
pigpio.pi.__init__(self)
self.GPIO=[4,5,6,12]
self.rpi=pigpio.pi(ip_addr)
for t in range(len(self.GPIO)):
self.rpi.write(self.GPIO[t],0)
def switch_state(self,i,state):
self.rpi.write(self.GPIO[i],state)
pi_1=relay('192.168.2.112') # creating first Rpi link
pi_2=relay('192.168.2.113') # creating second Rpi link
x=0
pi_1.switch_state(x,0)
如何将pigpio
模块的属性继承到relay
?为了不像我一样创建switch_state
,而是使用read
,write
以及属于pigpio
答案 0 :(得分:2)
如果我是对的,你想通过继承将模块扩展到一个类。
如果这是真的,你不能在没有黑客的情况下执行,但无论如何,你不应该这样做。
模块和类不是以这种方式使用的。 你最好继续按预期使用模块的功能,我认为没有充分的理由在一个类中映射模块的功能。
您可以手动映射,如:
import spam
class Foo():
def egg(self, *args, **kwargs):
return spam.egg(*args, **kwargs)
但同样,我不确定是否有正当理由这样做 - 但有充分的理由不这样做..