2017-07-27 97 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) 

但同樣,我不知道是有正當理由這樣做 - 但有足夠的正當理由不..