【发布时间】:2021-03-08 21:42:47
【问题描述】:
我正在考虑是否有一种方法可以在 Python3 中使用带有 super() 的继承但忽略部分方法?我可以在下面向您展示一个示例。
假设我有初始化一些 RPi GPIO 的类
class Encoder(object):
def __init__(self, A, B):
GPIO.setmode(GPIO.BCM)
GPIO.setup(A, GPIO.IN)
GPIO.setup(B, GPIO.IN)
self.A = A
self.B = B
我想继承这个类及其 init() 方法,但我想将GPIO.setmode(GPIO.BCM) 更改为GPIO.setmode(GPIO.BOARD)。有没有办法在不将整个 __init__ 复制到我的子类中的情况下做到这一点?
在这一行中更改并复制它并不是什么大问题,但我很好奇是否可以避免复制粘贴;)
【问题讨论】:
-
你能更改编码器代码吗?这将是添加具有默认值的参数甚至创建对可继承方法的调用以进行特化的好时机。
-
不,没有。您可以将该代码分解为两个单独的函数并在
__init__中调用它
标签: python python-3.x inheritance raspberry-pi