有没有办法在不使用MyClass的情况下调用super(self).__init__()?

4 投票
5 回答
1211 浏览
提问于 2025-04-15 20:57

我觉得这个语法真让人烦。每次我改名字的时候,都得把这个调用也改一遍,感觉没有任何理由。难道没有什么像 __class__ 这样的神奇变量可以用吗?我对Python 2.5的答案比较感兴趣,不过知道后面的版本有没有解决这个问题也不错。

5 个回答

4

据我所知,在2.5版本中,这是不可能的。不过在3.0版本中,这个情况有了改变,你可以直接调用 super().__init__()

4

这个问题在Python 3中已经修复了。你可以查看这个链接了解更多信息:http://docs.python.org/py3k/library/functions.html#super

还有一个相关的链接可以参考:http://www.python.org/dev/peps/pep-3135/

3

如果你的类只继承自一个类,那么这样做是没问题的:

class B(A):
    def __init__(self):
        A.__init__(self)

不过我可能会错。

撰写回答