python 用type()创建类

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是完全一样的

转载于:https://www.cnblogs.com/xiaohai2003ly/p/8509762.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值