加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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并看到这句话:

The type() function returns an object’s type (which is an object itself)

当然,我决定检查一下:

>>> 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'>是一个类型类型的实例).

这同样适用于所有类型(包括类);调用它们并生成给定类型的新实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读