如何调用 super() 使其在 2 和 3 中兼容?

Posted

技术标签:

【中文标题】如何调用 super() 使其在 2 和 3 中兼容?【英文标题】:How can I call super() so it's compatible in 2 and 3? 【发布时间】:2014-03-13 04:00:02 【问题描述】:

我正在尝试使用 six 编写 2/3 兼容代码,但我不知道如何以交叉兼容的方式调用 super()。除此之外还有没有更好的方法,例如:

class MyClass(MyBase):
    def __init__():
        if six.PY3:
            super().__init__()
        else:
            super(MyClass, self).__init__()
        ...

【问题讨论】:

【参考方案1】:

super() 与参数一起使用是向后兼容的,因此您应该能够使用super(MyClass, self) 而无需检查版本。

【讨论】:

以上是关于如何调用 super() 使其在 2 和 3 中兼容?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 python 脚本调用 pip 并使其在本地安装到该脚本? [复制]

如何隐藏 DefaultTableModel 中的特定列以使其在表中显示?

如何将数据加载到 Hive 表并使其在 Impala 中也可访问

对 PHP 函数的 AJAX 调用不会使其在我的数据库中输入值

给定背景颜色,如何获得使其在背景颜色上可读的前景色?

如何添加视频元素并使其在启用声音的情况下自动播放