是的,0参数语法特定于Python 3,请参阅 Python 3.0 和PEP 3135的新增功能 -NewSuper 。
在Python 2和必须跨版本兼容的代码中,只需坚持明确地传入类对象和实例即可。
是的,有可用的“反向移植”使super()
Python 2(例如future
库)可以使用无参数版本,但是这些都需要大量的技巧,包括对类层次结构进行全面扫描以找到匹配的函数对象。这既脆弱又缓慢,根本不值得“带来便利”。
TypeError:super()至少接受1个参数(给定0)错误是特定于任何python版本的吗?
是的,0参数语法特定于Python 3,请参阅 Python 3.0 和PEP 3135的新增功能 -NewSuper 。
在Python 2和必须跨版本兼容的代码中,只需坚持明确地传入类对象和实例即可。
是的,有可用的“反向移植”使super()
Python 2(例如future
库)可以使用无参数版本,但是这些都需要大量的技巧,包括对类层次结构进行全面扫描以找到匹配的函数对象。这既脆弱又缓慢,根本不值得“带来便利”。