2017-07-27 86 views
0

我使用RaspberryPi3和Python来远程控制其他RPI的GPIO。如何继承Class属性Python

我创建了一个类来初始化所有小童连接和销:

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像我一样,但使用readwrite多属于pigpio

+0

您只能从类继承,而不能从模块继承。 – Goyo

回答

2

如果我是正确的,你想通过继承到一个模块扩展到一类。

如果这是真的,你不能执行那些没有hacky的东西,但无论如何,你不应该这样做。

模块和类没有被设计为以这种方式使用。 你最好继续按照预期使用模块的功能,我没有理由在一个类中映射模块的功能。

你可以只用手工绘制它像:

import spam 

class Foo(): 
    def egg(self, *args, **kwargs): 
     return spam.egg(*args, **kwargs) 

但同样,我不知道是有正当理由这样做 - 但有足够的正当理由不..