【发布时间】:2022-07-25 17:51:52
【问题描述】:
我有一个类,其中有返回数组的属性。为简单起见,我们将它们视为常量:
import numpy as np
class MyClass:
def __init__(self):
self._time = np.array([0, 1, 2, 3])
self._a = np.array([0, 1, 2, 3])
self._b = np.array([4, 5, 6, 7])
@property
def a(self):
return self._a
@property
def b(self):
return self._b
现在,我有另一个继承 MyClass 的类,它正在插入数据,例如:
class Interpolator(MyClass):
def __init__(self, vector):
super().__init__()
self._vector = np.array(vector)
@property
def a(self):
return np.interp(self._vector, self._time, self._a)
@property
def b(self):
return np.interp(self._vector, self._time, self._b)
现在,问题是我有 2 个类,例如 MyClass,每个类都包含约 30 个属性。
有没有一种方法可以覆盖所有方法而无需一一进行?我也在查看this solution,但我不确定是否/如何将其应用于我的问题。
【问题讨论】:
-
@MoRe 人体工程学,例如代码完成,例如。通过显式
propertys,您的 IDE 可以告诉您实际存在哪些属性。 -
这真的是一种反模式
-
这里不要使用
attributes这个词——使用methods这个词 -
这里不要使用
attributes这个词——使用methods这个词
标签: python overriding