我不确定我做错了什么;或者为什么会这样。
我有以下代码:
class Expression (Node):
"""
...
"""
def __init__ (self):
self.__expressionType = None
def expressionType (self):
return self.__expressionType
class Number (Expression):
"""
Number .
"""
def __init__ (self, value):
"""
Value is an entry of type Constant.
"""
Expression.__init__(self)
assert isinstance (value, KST.Constant)
self.__constant = value
self.__expressionType = value.elementType()
对于一个数字对象 say n = Number(KST.Constant(..))
,对于以下语句,我总是返回 None ——</p>
n.expressionType()
现在,如果我将双下划线更改为单下划线,一切正常。我了解私有变量和半私有变量之间的区别,但为什么会发生这种情况——我不知道。此外,我在其他许多地方都使用了“__”,而且一切似乎都很好。