Python小菜Bulidin Function Type使用小记

python type


type(object) 
Return the type of an object. The return value is a type object. The isinstance() built-in function is recommended for testing the type of an object.

返回对象的类型。返回的对象是一个type类型。推荐使用isinstance()来检测一个对象的类型。


With three arguments, type() functions as a constructor as detailed below.
使用3个参数的时候,type()方法可以作为一个构造器。
type(name, bases, dict) 
Return a new type object. This is essentially a dynamic form of the class statement. The name string 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 becomes the __dict__ attribute. For example, the following two statements create identical type objects:
返回一个新的类型对象。从本质来说是一种类的动态声明。
name 参数是class的名称,也是 __name__属性的值
bases 元组列出了这个类的父类,成为了__bases__属性的值
dict 包含了类体的定义,成为 __dict__属性


下面是一个案例:
>>> class X(object):
...     a = 1
...
>>> X = type('X', (object,), dict(a=1))


#----------------------------------------------------------------------------
也就是说这个type可以在运行时生成我们定制的类

自己来试一试:

小例
使用type来判断对象类型是否相同:
1 ###############
In [8]: a = '1'

In [9]: b = type(a)

In [10]: isinstance('3',b)
Out[10]: True

In [11]: isinstance([],b)
Out[11]: False

使用type来动态创建类
2#################
In [12]: Pycon = type('Pycon',(object,),{'age':20})

In [13]: type(Pycon)
Out[13]: type

In [14]: Pycon.age
Out[14]: 20

In [15]: Pycon.__name__
Out[15]: 'Pycon'

3#################
In [20]: fun = lambda x: x+1

In [21]: ClaFun = type('ClaFun',(object,),{'add':fun })

In [22]: type(ClaFun.add)
Out[22]: instancemethod


In [26]: a = ClaFun()

In [27]: a.add(3)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-bebdff6e9b30> in <module>()
----> 1 a.add(3)

TypeError: <lambda>() takes exactly 1 argument (2 given)
#---但是调用不行,缺少了一个self参数

4#################
In [29]: fun = lambda self,x: x+1

In [30]: ClaFun = type('ClaFun',(object,),{'add':fun })

In [31]: a = ClaFun()

In [32]: a.add(3)
Out[32]: 4

这样就行了,根据条件动态创建类应该很有用处。
更多相关文章
  • 线程间通讯 一.NSThread 1.简单说明 ①线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 ②线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任务后,转到另1个线程继续执行任务 ③线程间通信常用方法 // waitUntilDone的含义: ...
  •   Buffer overflow in configure() 首先,有关configure()函数的栈溢出,官网描述如下: 我们来看一下12月12日补丁的内容 http://bk1.ntp.org/ntp-dev/?PAGE=patch&REV=548acf55dxKfhb6MuYQwz ...
  • 备注:增加了点击按钮变换头像的功能    ViewController.m  #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)v ...
  • redis list类型 一.查看list类型的命令 二.list命令详解     一.查看list类型的命令 1.在终端数据 help @list 127.0.0.1:6379>help @list BLPOP key [key ...] timeout summary: Remove an ...
  • 1)从python官网上下载windows下的安装包python-2.7.3.msi并安装 2)打开IDLE(python GUI),输入 >>>import sys >>>sys.version 如果你的python是32位,将出现如下字符: ‘2.7.3 (d ...
  • 对于 HTML5 的开发者和公司决策者们而言,现在最重要的技术是 HTML.JavaScript.CSS.移动平台和设备.以及不断改进的 HTML 平台(包括浏览器和操作系统).这意味着,下面 10 件事情将发生在 2013 年: 1.基于HTML5移动平台的崛起 在开发跨平台 app 方面,HTM ...
一周排行
  • 第三章PHP基础       (3.1——3.5) 3.1  在WEB页面中嵌入PHP代码 3.2 为代码添加注释 3.3 向浏览器输出数据 3.4 PHP支持的数据类型 3.5 标识符       3.1  在WE ...
  •   设置好开发环境后,我们就可以进入IOS开发了.   IOS 开发开始还是对基础的语言objective c有一个大致的掌握比较好.   面对许多开发资料,我选择了看官方的文档.   http://develope ...
  • # Sets the target folders and the final framework product. FMK_NAME=HovnVoipEngine FMK_VERSION=1.0 # Install ...
  • 题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abcXYZ ...
  • 很多入侵者都会在正面遇到防火墙之后,采用反向链接的方法控制远程服务器.早期大家都用perl或c代码写.现在大家都与时俱进了,用python写了.代码量减少很多啊. 小雨写的一个,替代之前的perl版本的,可以直接返回 ...
  • 原文地址:硅谷公司如何招人的一二事作者:王淮Harry哥有好多朋友问硅谷公司招工程师的基本流程. 作为应聘者, 我试过Facebook, Google, Yahoo, Oracle, 均拿过offer; 作为面试人员 ...
  • 1.修改模块配置,Application/当前模块名/Conf/config.php <?php return array( //数据库配置信息 'DB_TYPE' => 'mysql', // 数据库类 ...
  • Replicated Join Pattern Description join是一种特殊的join,用于一个大数据和许多小数据集map端执行的情况. Intent 这种模式能够消除reduce阶段的shuffle. ...
  • 不善于游泳的长鼻蝙蝠鱼. 中新网3月20日电 据日本媒体19日报道,日本池袋阳光城(丰岛区东池袋3丁目)的阳光水族馆,近日举办了奇异动物展. 其中展出有大王具足虫,它生活在海底以其他生物尸体为食,被誉为"海 ...
  • 中新社旧金山8月12日电 美国精神健康研究所主任托马斯·尹塞尔12日表示,几十年来,美国自杀率高居不下,每年平均自杀人数达3.9万人,比凶杀案死者多两倍,也高于车祸.艾滋病或前列腺癌死亡人数. 美国喜剧明星罗宾·威廉 ...