Sar*_*sch 3 python types function object python-3.x
首先,如果我问一些愚蠢的话,我很抱歉,因为我是Python的新手...
我正在阅读http://docs.python.org/3.1/reference/datamodel.html#objects-values-and -types并看到那句话:
type()函数返回一个对象的类型(它本身就是一个对象)
当然,我决定检查一下:
>>> def someFunction(x):
... return x * x
...
>>> type(someFunction)
<class 'function'>
>>> type(type)
<class 'type'>
Run Code Online (Sandbox Code Playgroud)
所以,看起来函数有function类型,但是type如果它是一个函数,为什么函数有不同的类型?或者说文档是撒谎,它不是真正的功能?
Mar*_*ers 10
是的,type是一个函数,但它是用C实现的.
它也必须是它自己的类型,否则你不能这样做:
>>> def foo(): pass
...
>>> type(foo)
<type 'function'>
>>> type(type)
<type 'type'>
>>> isinstance(type(foo), type)
True
Run Code Online (Sandbox Code Playgroud)
例如,你不能测试一个类型是否是一个类型,如果type类型不是,type但是function.我还在吗?
从技术上讲,它type是一个可调用的,并且有两个相关的角色可以发挥作用.它是一个元类(一个类工厂)和Python中所有类型的基础,并且在调用它时会生成一个type实例(<type 'function'>是该type类型的实例).
这同样适用于所有类型(包括类); 调用它们并生成给定类型的新实例.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |