hasattr,getattr,setattr

xiaoxiao2021-02-28  69

class my: def __init__(self): self.d = 1 def assign(self, k): self.j = k a = my() #hasattr 方法 print(hasattr(a,assign)) #nameerror 所有的都要加引号 print(hasattr(a,'assign')) #True print(hasattr(my(),'assign')) #True my()跟a 是一个东西 都是class my的一个实例 print(hasattr(my,'assign')) #True my 是class 有方法 assign #hasattr 属性 print(hasattr(a,'d')) print(hasattr(my(),'d')) #True 因为实例 自动初始化了 而在初始化函数里 有d这个属性 print(hasattr(my,'d')) #False 因为my是class 不是实例,没有执行__init__ 所以不会有d print(hasattr(my(),'j')) #False 因为创建实例只执行初始化函数 没有执行assign 所以 #不会有j这个属性 getattr(my(),'assign',None) #假如有assign 就返回assign #没有assign 返回None 如果没有第三个参数None 不写 #没有assign的话 就会引起error setattr(a,'name','wang') print(a.name) #'wang' #设置对象的属性
转载请注明原文地址: https://www.6miu.com/read-2603261.html

最新回复(0)