Python 将函数对象传递给uu init uuu会将默认值而不是显式参数放入类成员中
我有以下问题(精简代码): 现在我希望,当我调用Python 将函数对象传递给uu init uuu会将默认值而不是显式参数放入类成员中,python,python-2.7,Python,Python 2.7,我有以下问题(精简代码): 现在我希望,当我调用a.infl\uz()时,会调用foo。然而,不知何故调用了default(),我不知道为什么会发生这种情况。我是在这里做错了什么,还是应该在代码的其他地方查找错误 编辑:编辑注释中的错误。此代码不运行,请修复它。(T和中缺少的self)当我删除T内容时(请参阅),将self添加到\uu init\uuuuuuuu(同上),并在3.6上运行,a.infl()如预期的是2。在python 2.7.12上也是如此,输出2如预期的。添加了T,但是我必须把
a.infl\uz()
时,会调用foo。然而,不知何故调用了default()
,我不知道为什么会发生这种情况。我是在这里做错了什么,还是应该在代码的其他地方查找错误
编辑:编辑注释中的错误。此代码不运行,请修复它。(
T
和中缺少的self
)当我删除T内容时(请参阅),将self
添加到\uu init\uuuuuuuu
(同上),并在3.6上运行,a.infl()
如预期的是2。在python 2.7.12上也是如此,输出2如预期的。添加了T,但是我必须把self
放到\uuuu init\uuuu
的什么地方呢?即使T
和self
在适当的地方,我仍然会得到2
。
class T(object):
def __init__(self):
pass
def default():
return 0
def foo():
return 2
class A(T):
def infl_(): pass
def __init__(self, infl = default):
super(A, self).__init__()
self.infl_ = infl
a = A(infl = foo)