【问题标题】:Is type() a built in function?type() 是内置函数吗?
【发布时间】:2016-03-08 20:51:21
【问题描述】:

This sitetype() 列为 Python 的内置函数之一。但是,当我检查它似乎是“类型”类型时:

>>> type(dir)
<type 'builtin_function_or_method'>
>>> type(id)
<type 'builtin_function_or_method'>
>>> type(abs)
<type 'builtin_function_or_method'>
>>> type(type)
<type 'type'>

对我来说,type() 似乎是一个返回参数类型的内置函数。我正在尝试通过以下方式验证这一点:

>>> a = type(type)
>>> type(a)
<type 'type'>
>>> type(1)
<type 'int'>
>>> type(type(1))
<type 'type'>

我在这里缺少什么? type() 是否只是 type 类的构造函数,所有其他对象都从该类继承?

【问题讨论】:

  • type 是module builtin 中的一个类,也是一个内置函数

标签: python object types


【解决方案1】:

是的。 type() 既是一个返回对象类型的类函数对象,又是一个作为所有类的基元类的类(不是基类,而是close)。它通过传递给它的参数数量来区分它的两个函数。一个参数,它返回该参数的类型。三个参数,它返回一个由这些参数构建的类。

(元类是类的类。就像常规对象是某个类的实例一样,类也是元类的实例。)

这是出于历史原因。最初,它只是一个获取对象类型的函数。在 Python 2.2 中,当内置类型和用户定义类统一时,它成为了基本元类。但是,为了向后兼容,旧的type() 的功能被保留为type 类的一部分。

【讨论】:

  • 谢谢,历史是光明的。
猜你喜欢
  • 2012-05-27
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
  • 2016-10-26
相关资源
最近更新 更多