0

我是 Python 新手,我知道我一定遗漏了一些非常简单的东西,但是为什么这个非常非常简单的代码不起作用?

class myClass:
    pass

testObject = myClass
print testObject.__class__

我收到以下错误:

AttributeError: class myClass has no attribute '__class__'

Python中的每个对象不是都有一个__class__属性吗?

4

3 回答 3

3

我想我意识到了我的错误。我以为代码testObject = myClass是在创建类的新实例/对象,但实际上是在为类本身分配一个引用。我将代码更改为:

class myClass: 
    pass 

testObject = myClass() 
print testObject.__class__ 

它现在可以按我的预期工作

于 2010-05-14T16:08:56.160 回答
2

Python 中的大多数(但不是全部)对象都有一个__class__属性。您通常可以访问它来确定对象的类。

您可以通过调用它来获取任何对象的类。type

>>> class myClass:
...     pass
... 
>>> testObject = myClass
>>> type(testObject)
<type 'classobj'>
于 2010-05-14T16:05:44.000 回答
1

旧式类没有__class__属性。

class myClass(object):
    pass
于 2010-05-14T16:01:43.077 回答