我是Python的新手,我知道我必须错过一些非常简单的东西,但为什么这个非常非常简单的代码不起作用呢?
class myClass:
pass
testObject = myClass
print testObject.__class__
我收到以下错误:
AttributeError: class myClass has no attribute '__class__'
Python中的每个对象都不具有__class__
属性吗?
答案 0 :(得分:3)
我想我意识到自己的错误。我认为代码testObject = myClass
正在创建类的新实例/对象,但它实际上是为类本身分配了一个引用。我将代码更改为:
class myClass:
pass
testObject = myClass()
print testObject.__class__
现在它正如我期待的那样工作
答案 1 :(得分:2)
Python中的大多数(但不是全部)对象都具有__class__
属性。您通常可以访问它来确定对象的类。
您可以通过调用type
来获取任何对象的类。
>>> class myClass:
... pass
...
>>> testObject = myClass
>>> type(testObject)
<type 'classobj'>
答案 2 :(得分:1)
旧式类没有__class__
属性。
class myClass(object):
pass