为什么我无法访问 Python 中的 instance.__class__ 属性?
-
26-09-2019 - |
题
我是 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
不隶属于 StackOverflow