如何继承Class属性Python

时间:2017-07-27 09:10:26

标签: python class

我使用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,而是使用readwrite以及属于pigpio

的更多内容

1 个答案:

答案 0 :(得分:2)

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

如果这是真的,你不能在没有黑客的情况下执行,但无论如何,你不应该这样做。

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

您可以手动映射,如:

import spam

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

但同样,我不确定是否有正当理由这样做 - 但有充分的理由不这样做..