类foo,类foo()和类foo(对象)之间的区别?

时间:2017-02-15 19:17:31

标签: python python-3.x class

我注意到所有3 - >可以使用class fooclass foo()class foo(object),但我很困惑这些3之间有什么区别,如果有的话? (我的意思是在属性中主要是python3

1 个答案:

答案 0 :(得分:10)

让我们分解它们:

  1. class foo

    • Python 3 :这通常是要走的路。默认情况下,Python会为您添加object作为基类。
    • Python 2 :它会创建一个旧样式classobj,会引起各种令人头疼的问题。
  2. class foo()

    • Python 3 Python 2 :与两个Python版本的class foo类似,修剪它,它看起来很丑,没有任何区别。
  3. class foo(object)
    • Python 3 Python 2 :在两个Pythons中,都会产生一个新的样式类,它拥有所有最知名的好东西。人们通常在编写可能在Python 2中使用的代码时使用此表单,显式继承自对象会导致类在Python 2中成为新样式并且在3中没有区别(除了一些额外的键入)。 / LI>