python – `type`真的是一个函数吗?
发布时间:2020-12-20 12:24:16 所属栏目:Python 来源:网络整理
导读:首先,如果我问一些愚蠢的话,我很抱歉,因为我是 Python新手… 我正在阅读 http://docs.python.org/3.1/reference/datamodel.html#objects-values-and-types并看到这句话: The type() function returns an object’s type (which is an object itself) 当然,
首先,如果我问一些愚蠢的话,我很抱歉,因为我是
Python新手…
我正在阅读 http://docs.python.org/3.1/reference/datamodel.html#objects-values-and-types并看到这句话:
当然,我决定检查一下: >>> def someFunction(x): ... return x * x ... >>> type(someFunction) <class 'function'> >>> type(type) <class 'type'> 所以,看起来函数有函数类型,但是如果它是函数,为什么类型函数有不同的类型?或者说文档是撒谎,它不是真正的功能? 解决方法
是的,type是一个函数,但它是用C实现的.
它也必须是它自己的类型,否则你不能这样做: >>> def foo(): pass ... >>> type(foo) <type 'function'> >>> type(type) <type 'type'> >>> isinstance(type(foo),type) True 例如如果类型的类型不是类型而是函数,则无法测试类型是否为类型.我还在吗? 从技术上讲,type是可调用的,并且有两个相关的角色可以玩.它是一个元类(一个类工厂),是Python中所有类型的基础,当调用它时会产生一个类型实例(< type'function'>是一个类型类型的实例). 这同样适用于所有类型(包括类);调用它们并生成给定类型的新实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |