issubclass
1 issubclass(cls, class_or_tuple, /)
2 Return whether 'cls' is a derived from another class or is the same class.
3
1 class A:
2 pass
3
4 class B(A):
5 pass
6
7 class C:
8 pass
9
10 print(issubclass(A,(B,A))) # 一个类会被认为自己的子类 .
11
12 print(issubclass(A,B)) # 第一个是否是第二个类的子类
13
14 print(issubclass(B,(A,C)))
15
16
17 help(issubclass)
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 True
3 True
4 True
5 False
6 >>>
isinstance
1 #isinstance 检查一个实例对象是否属于一个类 . (第二个也可以是一个元祖 可以有多个类.)
2 class A:
3 pass
4
5 class B(A):
6 pass
7
8 class C:
9 pass
10
11 b1=B()
12 print(isinstance(b1,A))
13
14 print(isinstance(b1,B))
15
16 print(isinstance(b1,C))
17
18
19 print(isinstance(b1,(C,B)))
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 True
3 True
4 False
5 True
6 >>>
hasattr 判断一个 对象里面有没有该属性
1 # hasattr(第一个是对象.第二个是属性名) (attr=attribute 属性)
2 class A:
3 pass
4
5 class B(A):
6 pass
7
8 class C:
9 def __init__(self,x=0):
10 self.x=x
11
12 #测试一个对象是否有指定的和属性.
13 c1=C()
14 print(hasattr(c1,'x'))# 属性必须用 '' 来 修饰
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 True
3 >>>
getattr(实例对象,属性,不存在打印的值)(attribute 属性) 得到一个实例对象的属性的值 , 如果该属性不存在则打印第三个参数
1 # getattr(object,name[,default) 返回对象指定的属性值 如果指定的参数不存在 如果你制订了default则会defaulf打印出来,否则会有一个arrtibute的异常 ,
2 class A:
3 pass
4
5 class B(A):
6 pass
7
8 class C:
9 def __init__(self,x=0):
10 self.x=x
11
12 c1=C()
13
14 print(getattr(c1,'x'))
15 print(getattr(c1,'y','您所访问的属性不存在'))
setattr(实例对象,属性,值) 给实例对象一个属性值 如果该属性不存在则 建立属性然后赋值 .
2 class A:
3 pass
4
5 class B(A):
6 pass
7
8 class C:
9 def __init__(self,x=0):
10 self.x=x
11
12 c1=C()
13 print(getattr(c1,'y','您访问的属性不存在'))
14
15 print(setattr(c1,'y',0))
16
17 print(getattr(c1,'y','您访问的属性不存在'))
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 您访问的属性不存在
3 None
4 0
5 >>>
delattr(实例变量,属性) 属性不存在则抛出 AttributeError的异常
2 class A:
3 pass
4
5 class B(A):
6 pass
7
8 class C:
9 def __init__(self,x=0):
10 self.x=x
11
12 c1=C()
13 print(getattr(c1,'y','您访问的属性不存在'))
14
15 print(setattr(c1,'y',0))
16
17 print(getattr(c1,'y','您访问的属性不存在'))
18
19 print(delattr(c1,'y'))
20
21 print(getattr(c1,'y','您访问的属性不存在'))
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 您访问的属性不存在
3 None
4 0
5 None
6 您访问的属性不存在
7 >>>
property(fget=None,fset=None,fdel=None,doc=None)
(得到 , 重置 , 删除 . )
1 class C:
2 def __init__(self,size=10):
3 self.size=size
4
5 def getSize(self):
6 return self.size
7
8 def setSize(self,value):
9 self.size=value
10
11 def delSize(self):
12 del self.size
13
14 x=property(getSize,setSize,delSize,'这个难道是注释')
15
16 c1=C() # 生成一个 对象实例
17
18 print(c1.getSize()) # 调用getSize()函数 .
19
20 print(c1.x)
21
22 c1.x=18
23
24 print(c1.size) # 调用 size 属性 .
25
26 print(c1.getSize())
27
28 del c1.x
29
30 print(c1.size)
1 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
2 10
3 10
4 18
5 18
6 Traceback (most recent call last):
7 File "C:/Users/Administrator/Desktop/new.py", line 30, in <module>
8 print(c1.size)
9 AttributeError: 'C' object has no attribute 'size'
10 >>>