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

#Hello是一个class, 它的类型就是type

#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

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

1. class的名称,

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

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

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

python 创建类_python 用type()创建类相关推荐

  1. python中的元类_python中的元类

    类也是对象,但是类有创建对象的能力 动态创建一个类: classmonkey():defbanana(self):print 'banana!' defapple(self):print 'i wan ...

  2. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

  3. python class类_python中的class(类)

    编码注释: 在源文件的第一行或第二行写入如下内容: # -*- coding:gbk -*- # 设置源文件编码格式为:gbk 或 # -*- coding:utf-8 -*- # 设置源文件编码格式 ...

  4. python元类_python中的元类 metaclass

    python中的元类 metaclass 在python中,类(class)本身也是一个实例对象, 它的类型则是元类, 如果没有指明, 则自定义类的类型是type. 换言之, 我们所定义的普通类都是t ...

  5. python 什么是原类_Python 什么是元类(metaclasses)?

    1.什么是类 在理解元类之前,我们必须先掌握Python中的类(class). 和大多数语言一样,Python中的类知识用来描述如何"生成一个对象": 但是,在Python中,类不 ...

  6. python中的元类_Python中的元类(metaclass)

    提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自身有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理 ...

  7. python元类_Python基础:元类

    一.概述 Python虽然是多范式的编程语言,但它的数据模型却是 纯面向对象 的.与那些仅在语法层面声称纯OO的编程语言(如Java)相比,Python的这种纯粹性更加深入骨髓. 在Python的世界 ...

  8. python如何创建一个类_python 3——自定义一个类、object类

    1.如何创建一个类? __init__(self): self代表类的实例,而非类 类的方法:在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第 ...

  9. python如何创建一个类_python (知识点:类)简单的创建一个类

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Mon Nov 14 01:01:29 2016 ...

最新文章

  1. 不要只是为您的代码做些毛-用Prettier修复它
  2. iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  3. MySQL中interactive_timeout和wait_timeout的区别
  4. 【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真
  5. python float 精度_numpy.float128的内部精度是多少?
  6. Matlab语音采集与读写程序,基于MATLAB的语音信号录制采集和分析的程序设计
  7. 【JVM】通过javap命令分析Java汇编指令
  8. 理解 Python 中的异步编程
  9. Shiro学习(24)在线回话管理
  10. 写给 3 年内程序开发者的一封信
  11. Linux命令简介之xargs
  12. tp5在apache下能访问,但放到nginx下报404
  13. SSM+校园网上订餐系统 毕业设计-附源码211510
  14. 微信小程序——读取显示用户头像昵称
  15. 复习一波,hashMap的底层实现原理
  16. 深爱的妻子出轨(转贴)
  17. java过滤ios表情,JS前端去掉emoji表情和Java后台处理emoji表情方法
  18. CAD/CASS土地报备坐标数据提取插件txt报盘数据导出工具支持环岛地块
  19. thinkphp创建临时表
  20. CF785C (1600)

热门文章

  1. poj 1715 Hexadecimal Numbers 排列组合
  2. android Activity 之间传递复杂对象
  3. VC6下使用WebLink控件
  4. Android 贴纸样式标签
  5. Android应用安装apk版本升级,适配Android 8.0和Android 10.0下载安装,shell命令安装APK
  6. java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环
  7. 高一计算机网络技术应用计划,高一计算机网络应用基础教学计划
  8. 【Makefile由浅入深完全学习记录3】伪目标的引入
  9. CentOS安装cheat和tldr
  10. 但行好事,莫问前程!