Python技巧——type生成类

class a():
    ...

class b():
    ...

class c():
    ...

这样编写类,未免太枯燥无味了。今天学习的type函数,叫你重新认识Python。

先来了解type的基本用法。

>>> a=int()
>>> b=tuple()
>>> c=set()
>>> d=object()
>>> type(a)
<class 'int'>
>>> type(b)
<class 'tuple'>
>>> type(c)
<class 'set'>
>>> type(d)
<class 'object'>

可以看到,type能显示出一个数据的类型。既然这样,就可以对类型进行判断。

>>> type(a)==int
True

但是这还是不精确。看:

>>> class cl(int):
	pass

>>> a=cl()
>>> type(a)==int
False

显然,这样很不人性。继承自int就不是int了?这时,不用type,用isinstance函数。

>>> isinstance(a,int)
True

isinstance以后会介绍,这里不多说。

type还可以生成一个类。其中,第一个参数为类名;第二个参数为基类元组;第三个参数为由成员名、成员值组成的字典。这样,可以灵活的生成类:

>>> for i in 'ab':
	type(i,(object,),{})

	
<class '__main__.a'>
<class '__main__.b'>
>>> obj1 = a()
>>> obj2 = b()
>>> obj1
<__main__.a object at 0x000001F798D10C10>
>>> obj2
<__main__.a object at 0x000001F798D20BE0>

黑科技了呵呵呵。

好处是,可以在元类中指导类的创建,也就是返回type生成的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值