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)