Python super()引发TypeError
-
20-08-2019 - |
题
在Python 2.5中,以下代码引发了TypeError
:
通用标签
如果我将class X
替换为class X(object)
,它将起作用。对此有什么解释?
其他提示
此外,除非必须使用,否则不要使用super()。您可能会怀疑,使用新型类并不是通用的“正确的事情”。
有时候,您可能期望多重继承,并且可能会想要多重继承,但是在您了解MRO的繁琐细节之前,最好不要管它,并坚持: 通用标签
如果以上答案均未明确提及。您的父类需要从“对象”继承,这实际上会将其转变为新的样式类。 通用标签
我尝试了各种X.a()方法;但是,它们似乎需要X的实例才能执行a(),所以我做了X()。a(self),这似乎比以前的回答更完整,至少对于我遇到的应用程序而言。由于没有必要的构造和破坏,这似乎不是解决该问题的好方法,但效果很好。
我的特定应用是Python的cmd.Cmd模块,由于某种原因,它显然不是NewStyle对象。
最终结果: 通用标签
不隶属于 StackOverflow