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生成的类。