Python类声明的区别[重复]

Posted

技术标签:

【中文标题】Python类声明的区别[重复]【英文标题】:Difference in Python class declaration [duplicate] 【发布时间】:2012-02-01 10:21:46 【问题描述】:

在 python 类声明中,我可以通过几种方式声明一个类。以下样本有什么区别?

class MyClass:
 def __init__(self)
     pass


class MyClass(object):
   def __init__(self)
     pass

【问题讨论】:

一个重要的问题,但显然可以通过阅读文档来回答“自助服务”.. 【参考方案1】:

第二个声明创建一个new-style class。新样式类派生自内置类型,在本例中为object。这是在 python 2.2 中引入的,目的是统一类和类型。为了向后兼容旧式类仍然是默认的

补充阅读:http://docs.python.org/release/2.2.3/whatsnew/sect-rellinks.html

【讨论】:

FTR,在 Python 3 中这两种语法没有区别。【参考方案2】:

第二种方式创建一个“新式”类。正如python网站Python Guide 3.3和here上的几个地方所提到的,文档确实有点缺乏。还有一个 essay 描述了 Python 的创建者 (Guido van Rossum) 的设计,但它不是严格的文档。

【讨论】:

以上是关于Python类声明的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python类定义[重复]

Python中静态方法和类方法的区别

Python中的广度优先和深度优先

类定义中的Python差异[重复]

在Python中声明私有变量[重复]

python-6:集合 之二 frozenset 无序不可变类集合