__class__
不合格的内部方法!*鉴于以下事实:
1)__class__
未在交互式会话的全局范围或内置范围中定义
2)在Python 3.3.3和Python 2.7.11下测试
示例:
class Z:
def __init__(self):
print(__class__)
在Python 3.3.3下工作,但是在使用Python 2.7.11进行测试时,这会引发经典和新式类的错误。像往常一样,当我们想要使用在类中定义的变量时,我们必须使用obj.attr
。令人惊讶的是__class__
它才有效!
class Z(object):
a = 20
def __init__(self):
print(__class__)
print(a) # doesn't work
__class__
来自哪里?
这是一个错误吗?