2017-07-27 18 views
0

他のRPIのGPIOをリモートコントロールするためにPythonでRaspberryPi3を使用します。クラス属性を継承する方法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) 

私はrelaypigpioモジュールの属性を継承することができますか?ために、私が行ったようにswitch_stateを作成するには、しかし、私が正しい場合は、継承によって、クラスにモジュールを拡張したいpigpio

+0

モジュールからではなく、クラスから継承することができます。 – Goyo

答えて

2

に属しreadwriteなどを使用しません。

これが真実なら、あなたはハッキーなことなしにそれを実行することはできませんが、とにかくそれを行うべきではありません。

モジュールとクラスは、そのように使用するようには設計されていません。 モジュールの機能を期待どおりに使用することをお勧めします。クラス内でモジュールの機能をマッピングする良い理由はありません。 ...

ではなくに正当な理由がたくさんあります -

import spam 

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

しかし、再び、私はそれを行うには正当な理由があるかわからない:

あなただけのように手でそれをマップすることができ

関連する問題