有没有办法在不使用MyClass的情况下调用super(self).__init__()?
我觉得这个语法真让人烦。每次我改名字的时候,都得把这个调用也改一遍,感觉没有任何理由。难道没有什么像 __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)
不过我可能会错。