python - 将旧式类重写为新类

标签 python class

我在一些代码上运行了 pylint 并收到了关于旧式类的投诉。

我可以通过简单地更改来纠正这个问题吗:

class MyClass:

到:

class MyClass(object):

或者还有更多的东西?

最佳答案

在 Python 2 中,编写

class MyClass(object):

就足够了。或者你切换到 Python 3,其中

class MyClass:

就好了。

继承列表通常会给出一个基类列表(请参阅自定义类创建以获得更高级的用途),因此列表中的每个项目都应计算为允许子类化的类对象。没有继承列表的类默认从基类对象继承;因此

class Foo:
    pass

等同于

class Foo(object):
    pass

另请参阅:https://docs.python.org/3/reference/compound_stmts.html#class

此外,正如@Kevin 在评论中指出的那样,方法解析并非微不足道,在使用多重继承时可能会导致意外行为:http://python-history.blogspot.com/2010/06/method-resolution-order.html

关于python - 将旧式类重写为新类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278138/

相关文章:

python - 将数据保存为 python 模块是否合理?

python - 类内的装饰器和没有 'self' 的装饰类方法给出了奇怪的结果

c++ - 如何创建一个类,其中队列作为数据成员,在 C++ 中存储另一个类的实例

java - 如何使用一个java类文件来测试另一个java类文件

Ruby 类方法命名冲突

python - 每秒运行一个python函数

python - 在 Python 中将字符串中的每个其他字母大写?

python - 无法在 Django 1.9 中禁用foreignkey引用完整性检查

java - 在 Activity 和 View 类之间传递数据

python - 如何修复 "pip"?