英文文档:

class type(object)

class type(name, bases, dict)

With one argument, return the type of an object. The return value is a type object and generally the same object as returned by object.__class__.

The isinstance() built-in function is recommended for testing the type of an object, because it takes subclasses into account.

With three arguments, return a new type object. This is essentially a dynamic form of the class statement. The namestring is the class name and becomes the __name__ attribute; the bases tuple itemizes the base classes and becomes the __bases__ attribute; and the dict dictionary is the namespace containing definitions for class body and is copied to a standard dictionary to become the __dict__ attribute.

返回对象的类型,或者根据传入的参数创建一个新的类型

说明:

1. 函数只传入一个参数时,返回参数对象的类型。 返回值是一个类型对象,通常与对象.__ class__返回的对象相同。

#定义类型A

>>> class A:

name = 'defined in A'

#创建类型A实例a

>>> a = A()

#a.__class__属性

>>> a.__class__

#type(a)返回a的类型

>>> type(a)

#测试类型

>>> type(a) == A

True

2. 虽然可以通过type函数来检测一个对象是否是某个类型的实例,但是更推荐使用isinstance函数,因为isinstance函数考虑了父类子类间继承关系。

#定义类型B,继承A

>>> class B(A):

age = 2

#创建类型B的实例b

>>> b = B()

#使用type函数测试b是否是类型A,返回False

>>> type(b) == A

False

#使用isinstance函数测试b是否类型A,返回True

>>> isinstance(b,A)

True

3. 函数另一种使用方式是传入3个参数,函数将使用3个参数来创建一个新的类型。其中第一个参数name将用作新的类型的类名称,即类型的__name__属性;第二个参数是一个元组类型,其元素的类型均为类类型,将用作新创建类型的基类,即类型的__bases__属性;第三个参数dict是一个字典,包含了新创建类的主体定义,即其值将复制到类型的__dict__属性中。

#定义类型A,含有属性InfoA

>>> class A(object):

InfoA = 'some thing defined in A'

#定义类型B,含有属性InfoB

>>> class B(object):

InfoB = 'some thing defined in B'

#定义类型C,含有属性InfoC

>>> class C(A,B):

InfoC = 'some thing defined in C'

#使用type函数创建类型D,含有属性InfoD

>>> D = type('D',(A,B),dict(InfoD='some thing defined in D'))

#C、D的类型

>>> C

>>> D

#分别创建类型C、类型D的实例

>>> c = C()

>>> d = D()

#分别输出实例c、实例b的属性

>>> (c.InfoA,c.InfoB,c.InfoC)

('some thing defined in A', 'some thing defined in B', 'some thing defined in C')

>>> (d.InfoA,d.InfoB,d.InfoD)

('some thing defined in A', 'some thing defined in B', 'some thing defined in D')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。

python type创建类_Python基于内置函数type创建新类型相关推荐

  1. python函数type的用意_Python内置函数Type()函数一个有趣的用法

    Python内置函数Type()函数一个有趣的用法 今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法. 以前只是知道type可以检测对象类型.然后发现了一个有趣的 ...

  2. python内置函数入门_Python入门-内置函数一

    什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...

  3. python学习高级篇(part5)--内置函数type

    学习笔记,仅供参考,有错必纠 内置函数type 内置函数type()用于获得指定对象的类型,比如:实例对象的类型是其对应的类对象. 举个例子 代码: class MyClass(object):pas ...

  4. python __call__一般用在哪些地方_Python __call__内置函数的作用和用法

    开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客.这次先写一下__call__的用法,因为经常 ...

  5. python学习之最常用的内置函数

    python学习之最常用的内置函数 Python 内置函数总共有70余个(通常把内置类也统称为内置函数),覆盖面广,功能强大.不过,对于初学者在初级阶段,掌握下面几个函数是当务之急. (1) 控制台输 ...

  6. Day07:常用模块,面向对象编程(对象类)及内置函数

    今日内容: 1.常用模块 2.面向对象编程(*****)     介绍面向对象编程     类     对象 3.内置函数 ------------------------------ 1.面向过程编 ...

  7. Python培训教程:Python有哪些比较重要的内置函数?

    学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...

  8. python常用内置函数乘法_每个 Python 高手都应该知道的内置函数

    每个 Python 高手都应该知道的内置函数 Python 将纳入高中教材,大学 VB 将被 Python 取代, 现在你还对 Python 一无所知吗?去年就被国外一机构预测, 2017 年 pyt ...

  9. Python中10个常用的内置函数

    大家好,我是小张 在 3.8 版本中,Python 解释器共有近 69 个内置函数可供使用,有了它们能极大地提高编码效率, 数量虽然不少,但在日常搬砖中只用到其中一部分,根据使用频率和用法,列出来几个 ...

最新文章

  1. python画直方图代码-python plotly画柱状图代码实例
  2. 通过正则把文本里的链接加上a标签
  3. java系统界面找不到符号,找不到符号,java找不到符号
  4. Microsoft发布新工具,简化JavaScript Web应用的创建
  5. pcl通过积分图来进行法线预测
  6. obj.href 与 obj.getAttribute(href)的区别
  7. 现在比较流行的一种新的清除浮动的方法
  8. hibernate关联关系笔记
  9. 运用c语言和Java写九九乘法表
  10. JavaScript笔记(展开的层)-4
  11. PHP自动加载(下)——PSR4
  12. Fiddler使用过程中无法抓取https的解决方法
  13. 膜拜NFC解锁(靠近即开锁)
  14. 《算法图解》---笔记
  15. 客户需求分析8个维度_电商数据分析的4大思维和8个指标
  16. 还在为满意的渐变色发愁吗?10+个网站帮你解决烦恼
  17. 微信小程序python token验证_微信小程序爬虫遇到 token 的问题
  18. Springboot电子病历管理APP毕业设计源码010350
  19. Spark开发实例(编程实践)
  20. 帝国CMS(EmpireCMS) v7.5 后台XSS漏洞复现与原理分析

热门文章

  1. 立体相机开发|几何感知的实例分割
  2. react项目---基本语法字符串数组(6)
  3. docker连接容器外部的mysql
  4. OC中的数组,常使用的函数,怎样将字符串写到文件中,将数组写到文件中
  5. javascript的特点
  6. 欧几里德结构数据与 非欧几里德结构数据
  7. Python生物信息学②从PDB文件中提取蛋白序列
  8. sangerbox平台使用(二)差异分析
  9. cocos2dx android protobuf,Quick_Cocos2d_x V3.3 Protobuf Android
  10. http android下载工具,Android实现下载工具的简单代码