我是 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top