这样做符合我的需要,但我想知道这是否被认为是亵渎的(或者,甚至,非Pythonic)。
示例:
class A:
_class_specific = 1
def __init__(self, i):
self.instance_specific = i
def get_special_sum(self):
return self._class_specific + self.instance_specific
t = A(2)
t.get_special_sum() #< Returns 3
这样做的原因:
我在基类中定义了一个类变量
_ID
和一个实例方法 check(self)
。子类有自己的 _ID
值。继承的 check(self)
方法必须能够访问特定于实例的变量以及给定属的 _ID
变量,它将通过 self._ID
访问该变量
虽然上面的方法很完美,但我想知道是否有更明确的方法来做到这一点? ...除了留下明显的评论以明确意图之外...
不,没问题 - 它甚至为您的项目增加了灵活性:比如说,您希望类的一个特定实例对该变量具有不同的值,您所要做的就是在该实例上设置它。只需添加一些单元测试即可确保在使用它的任何地方都从
self.
读取它,并且没有任何缺点。