1 #一些常用的BIF和使用实例
2
3 #-------------------------------------------------------------------
4 #issubclass 判断一个类是否是另外一些类的子类
5 #issubclass(class,classinfo) classinfo 可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True
6 classA:7 pass
8 classB(A):9 pass
10 classC:11 pass
12
13 print("B是否是A的子类:",issubclass(B,A)) #True
14 print("B是否是B的子类:",issubclass(B,B)) #注意:它返回True,认为B是B的子类
15 print("B是否是C的子类:",issubclass(B,C)) #False
16 print("B是否是A、B、C中某个类的子类:",issubclass(B,(A,B,C))) #True
17 #-------------------------------------------------------------------
18
19 #-------------------------------------------------------------------
20 #isinstance 判断一个对象是否是某些类型
21 #isinstance(object,classinfo) #第一个参数是实例对象,第二个参数是类或者是一堆类对象的元组
22 classA:23 pass
24 classB(A):25 pass
26 classC:27 pass
28
29 b =B()30 print("b是否是A类型的:",isinstance(b,A)) #True
31 print("b是否是B类型的:",isinstance(b,B)) #True
32 print("b是否是C类型的:",isinstance(b,C)) #False
33 print("b是否是A、B、C中其中一种类型的:",isinstance(b,(A,B,C))) #True
34 print("故意犯错:",isinstance(B,(A,B,C))) #这里第一个参数如果不是实例对象,将永远返回False
35 #-------------------------------------------------------------------
36
37 #-------------------------------------------------------------------
38 #hasattr(object,name) 是否有属性,name是一个字符串
39 #getattr(object,name[,default]) 获取属性,default是字符串,当获取失败时返回
40 #setattr(object,name,value) 设置属性
41 #delattr(object,name) 删除属性
42 classA:43 def __init__(self, x=1):44 self.x =x45 a =A()46 if hasattr(a,"x"):47 print("有")48 print(getattr(a,"y","对不起没有y这个属性"))49 setattr(a,"y",10)50 print(a.y)51 delattr(a,"y")52 #-------------------------------------------------------------------
53
54 #-------------------------------------------------------------------
55 #property 使用一个对象,用对象调用函数,函数设置对象属性值。
56 #property(fget=None,fset=None,fdel=None,doc=None)
57 classTest:58
59 def __init__(self,size = 1,count = 2):60 self.size =size61 self.count =count62
63 defgetSize(self):64 returnself.size65 defsetSize(self,value):66 self.size =value67 defdelSize(selfCount):68 delself.size69
70 defgetCount(self):71 returnself.count72 defsetCount(self,value):73 self.count =value74 defdelCount(self):75 delself.count76
77 a =property(getSize,setSize,delSize)78 b =property(getCount,setCount,delCount)79
80 test =Test()81 print(test.size) #1
82 test.a = 100
83 print(test.size) #100
84 print(test.a) #100
85
86 print(test.count)#2
87 test.b = 200
88 print(test.count)#200
89 print(test.b) #200
90
91
92 #-------------------------------------------------------------------