type()可以查看一个类型,也可以查看变量的类型

class Hello1(object):
def hello(self, name = 'world'):
print('Hello, %s' % name) h1 = Hello1()
h1.hello()
print(type(Hello1))
print(type(h1)) 输出:

Hello, world
<class 'type'> #Hello是一个class, 它的类型就是type
<class '__main__.Hello1'> #h1是一个实例,它的类型就是class Hello1

type()函数既可以返回一个对象的类型,也可以创建出新的class,如用type()函数创建出Hello类而无需通过class Hello(object):

def fn(self, name = 'world'): #先定义一个函数
print('Hello, %s' % name) Hello = type('Hello', (object, ), dict(hello=fn)) #创建Hello class,传入class的名称,继承的父类集合class的方法名与函数绑定,这里我们把fn绑定到hello上 h = Hello()
h.hello()
print(type(Hello))
print(type(h)) 输出:

Hello, world
<class 'type'>
<class '__main__.Hello'>

要创建Hello calss, 需要给type()传入3个参数:

1. class的名称,

2. 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法

3. class的方法名称与函数绑定,这里我们是把fn绑定到方法名hello上

用type()创建的class和直接写class是完全一样的

python 用type()创建类的更多相关文章

  1. python——type()创建类

    今天我算是长知识了,我是一个python菜鸟,以前一直认为type(A)可以返回A的类型,但是不知道type还可以用于创建class,这篇经验就是介绍一下如何用type()创建一个类,以及如何设置该类 ...

  2. python中动态创建类

    class Foo(Bar): pass Foo中有__metaclass__这个属性吗?如果是,Python会在内存中通过__metaclass__创建一个名字为Foo的类对象(我说的是类对象,请紧 ...

  3. 09 Python两种创建类的方式

    第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...

  4. type 创建类,赋予类\静态方法等

    类方法 class ObjectCreator(object): pass @classmethod def testClass(cls): cls.temp = 666 print(cls.temp ...

  5. Python中type()详解:动态创建类

    众所周知: type()函数可以查看变量的类型: 先看一个简单的列子来看一下type查看变量类型 class Animal(): pass a=Animal() print(type(a)) prin ...

  6. python之type函数

    python 的type 函数 的介绍的   下面就是此函数的参数   三个参数的意义 '''type(class_name, base_class_tuple, attribute_dict)cla ...

  7. Python中的元类

    从前面"Python对象"文章中了解到,在Python中一切都是对象,类可以创建实例对象,但是类本身也是对象. class C(object): pass c = C() prin ...

  8. python学习(十)元类

    python 可以通过`type`函数创建类,也可通过type判断数据类型 import socket from io import StringIO import sys class TypeCla ...

  9. 理解python中的元类

    一,理解类也是对象 在python中类同样也是一种对象,只要使用关键字class,Python解释器在执行的时候就会创建一个对象,这个对象(类)自身拥有创建对象(类实例)的能力,这就是为什么他是一个类 ...

  10. python中的元类介绍

    类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段,在python中也是成立的. class ObjectCreator: pass my_object = ObjectCre ...

随机推荐

  1. bootstrap table 分页显示问题

    1.bootstrap-table客户端分页 客户端分页的数据源可以是后台服务器端传递过来(一次性获取,即获取所有你需要的数据),点击页码不再请求后台,利用页面缓存分页;cache : true, / ...

  2. 实力封装:Unity打包AssetBundle(三)

    前情提要:第二种打包方式 窗口初现 通过前面的两篇教程和一篇番外,我们已经完全实现了打包的功能.但是使用起来总是觉得有些晦涩别扭,如果不告诉别人怎么使用,对方肯定是一头雾水. What?你给我的这是啥 ...

  3. python-函数参数不固定

    默认参数的应用场景: 1.默认安装 2.数据库连接,默认端口号   参数不固定的情况: 参数组: args:将接收的位置参数转换成元组 def test(*args):     print(args) ...

  4. win7 java环境变量配置

    进行win7下Java环境变量配置      在"系统变量"下进行如下配置: (1)新建->变量名:JAVA_HOME变量值 C:\Program Files\Java\jd ...

  5. django-restful风格

    每一种求情都代表一种资源,它主要强调http应该一资源为中心,并且规范了url的风格, url:统一资源标志符,某一规定下能把资源独一无二的标示出来,好比每个人都有身份证号码. 它有四中对资源操作的请 ...

  6. pycharm 利用virtualenv为每个项目配置venv

    1.在某个位置安装一个虚拟环境 2.项目运行是配置virtualenv生成的环境 3.重启terminal 安装依赖: exp => pip install django

  7. Spring Boot 揭秘与实战(七) 实用技术篇 - 异步任务

    文章目录 1. Spring Boot 集成异步任务 2. 单发服务模式 3. 请求应答模式 4. 源代码 Spring 对异步任务具有很好的支持.这篇文章,我们透过 Spring Boot 来讲解下 ...

  8. 面向对象ZJ

    面向对象: 对象: 万事万物皆为对象. 特征, 动作或功能放在一起的就是一个对象 对象如何创建的. 在python中对象是通过类来创建的. 类是对对象的描述.统称.约束. class Car: def ...

  9. python之路,正则表达式

    python3 正则表达式 前言: (1). 处理文本称为计算机主要工作之一(2)根据文本内容进行固定搜索是文本处理的常见工作(3)为了快速方便的处理上述问题,正则表达式技术诞生,逐渐发展为一个单独技 ...

  10. angular-translate

    angular.module('app.core', ['pascalprecht.translate']).config(['$translateProvider', '$translatePart ...