Python 学习笔记 -- 一些常用的BIF

 1 #一些常用的BIF和使用实例
 2 
 3 #-------------------------------------------------------------------
 4 #issubclass 判断一个类是否是另外一些类的子类
 5 #issubclass(class,classinfo) classinfo 可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True
 6 class A:
 7     pass
 8 class B(A):
 9     pass
10 class C:
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 class A:
23     pass
24 class B(A):
25     pass
26 class C:
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 class A:
43     def __init__(self, x=1):
44         self.x = x
45 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 class Test:
58 
59     def __init__(self,size = 1,count = 2):
60         self.size = size
61         self.count = count
62 
63     def getSize(self):
64         return self.size
65     def setSize(self,value):
66         self.size = value
67     def delSize(selfCount):
68         del self.size
69 
70     def getCount(self):
71         return self.count
72     def setCount(self,value):
73         self.count = value
74     def delCount(self):
75         del self.count
76 
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 #-------------------------------------------------------------------

 

posted @ 2017-12-19 16:01  欧晨曦  阅读(1070)  评论(0编辑  收藏  举报