我读到在Python中,一个函数是一个类的对象。为了更好地理解,我做了如下操作:
>>> a=10
>>> a.__class__
<type 'int'>
>>> int.__class__
<type 'type'>
>>>
>>>
>>> def T1():
... print 'test'
...
>>> T1.__class__
<type 'function'>
>>> function.__class__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'function' is not defined
问:为什么解释器在第二种情况下会抛出错误,而不是在第一种情况下?我原本期望它返回<type 'type'>
。请纠正我的理解。
function
不是一个已定义的名称,这就是为什么它会引发异常的原因。您想要做的是function = T1.__class__; function.__class__
或者T1.__class__.__class_
。 - Vincent Savard