python type创建类_Python基于内置函数type创建新类型
英文文档:
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创建新类型相关推荐
- python函数type的用意_Python内置函数Type()函数一个有趣的用法
Python内置函数Type()函数一个有趣的用法 今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法. 以前只是知道type可以检测对象类型.然后发现了一个有趣的 ...
- python内置函数入门_Python入门-内置函数一
什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...
- python学习高级篇(part5)--内置函数type
学习笔记,仅供参考,有错必纠 内置函数type 内置函数type()用于获得指定对象的类型,比如:实例对象的类型是其对应的类对象. 举个例子 代码: class MyClass(object):pas ...
- python __call__一般用在哪些地方_Python __call__内置函数的作用和用法
开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客.这次先写一下__call__的用法,因为经常 ...
- python学习之最常用的内置函数
python学习之最常用的内置函数 Python 内置函数总共有70余个(通常把内置类也统称为内置函数),覆盖面广,功能强大.不过,对于初学者在初级阶段,掌握下面几个函数是当务之急. (1) 控制台输 ...
- Day07:常用模块,面向对象编程(对象类)及内置函数
今日内容: 1.常用模块 2.面向对象编程(*****) 介绍面向对象编程 类 对象 3.内置函数 ------------------------------ 1.面向过程编 ...
- Python培训教程:Python有哪些比较重要的内置函数?
学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...
- python常用内置函数乘法_每个 Python 高手都应该知道的内置函数
每个 Python 高手都应该知道的内置函数 Python 将纳入高中教材,大学 VB 将被 Python 取代, 现在你还对 Python 一无所知吗?去年就被国外一机构预测, 2017 年 pyt ...
- Python中10个常用的内置函数
大家好,我是小张 在 3.8 版本中,Python 解释器共有近 69 个内置函数可供使用,有了它们能极大地提高编码效率, 数量虽然不少,但在日常搬砖中只用到其中一部分,根据使用频率和用法,列出来几个 ...
最新文章
- python画直方图代码-python plotly画柱状图代码实例
- 通过正则把文本里的链接加上a标签
- java系统界面找不到符号,找不到符号,java找不到符号
- Microsoft发布新工具,简化JavaScript Web应用的创建
- pcl通过积分图来进行法线预测
- obj.href 与 obj.getAttribute(href)的区别
- 现在比较流行的一种新的清除浮动的方法
- hibernate关联关系笔记
- 运用c语言和Java写九九乘法表
- JavaScript笔记(展开的层)-4
- PHP自动加载(下)——PSR4
- Fiddler使用过程中无法抓取https的解决方法
- 膜拜NFC解锁(靠近即开锁)
- 《算法图解》---笔记
- 客户需求分析8个维度_电商数据分析的4大思维和8个指标
- 还在为满意的渐变色发愁吗?10+个网站帮你解决烦恼
- 微信小程序python token验证_微信小程序爬虫遇到 token 的问题
- Springboot电子病历管理APP毕业设计源码010350
- Spark开发实例(编程实践)
- 帝国CMS(EmpireCMS) v7.5 后台XSS漏洞复现与原理分析
热门文章
- 立体相机开发|几何感知的实例分割
- react项目---基本语法字符串数组(6)
- docker连接容器外部的mysql
- OC中的数组,常使用的函数,怎样将字符串写到文件中,将数组写到文件中
- javascript的特点
- 欧几里德结构数据与 非欧几里德结构数据
- Python生物信息学②从PDB文件中提取蛋白序列
- sangerbox平台使用(二)差异分析
- cocos2dx android protobuf,Quick_Cocos2d_x V3.3 Protobuf Android
- http android下载工具,Android实现下载工具的简单代码