hasattr,getattr,setattr
阿新 • • 發佈:2018-12-27
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' #設定物件的屬性