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