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类声明的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章