【发布时间】:2012-05-25 17:46:32
【问题描述】:
这发生在 python2.7 中
我正在研究 python 中元类的想法,几乎所有教程都将对象称为类的实例,在 python 中。但是,在玩class A(): 定义类的形式时,我看到了这个:
class ClsDef1():
pass
C1 = ClsDef1()
print C1
<__main__.ClsDef1 instance at 0x2aea518>
class ClsDef2(object):
pass
C2 = ClsDef2()
print C2
<__main__.ClsDef2 object at 0x2ae68d0>
这意味着当从一个不是对象固有的类创建实例时,该实例是一个实例,但是当一个类是从对象固有的时,该类的实例是一个对象?
谁能解释一下区别?在现实生活中我应该使用哪一个?
谢谢!
【问题讨论】:
-
stackoverflow.com/a/6380430/1318661 这是一个不错的答案。
-
Python 2 还是 Python 3?在后者中,两者确实是等价的(如果不命名基类,可以去掉括号)。