回覆列表
-
1 # 使用者4535004975032
-
2 # 使用者8125325138772
頂級函式hasattr可以檢視物件是否包含某某屬性,這裡的屬性包括資料屬性和方法。getattr可以獲取屬性。
如下舉例說明。
a=[1,2,3]
print("列表有count屬性:%s"%hasattr(a,"count"))
print("列表有append屬性:%s"%hasattr(a,"append"))
print("列表有shift屬性:%s"%hasattr(a,"shift"))
print("列表的count屬性是方法:%s"%hasattr(getattr(a,"count"),"__call__"))
print("列表的append屬性是方法:%s"%hasattr(getattr(a,"append"),"__call__"))
class myclass():
def __init__(self):
self.valattr=3
def method(self):
pass
mc=myclass()
print("myclass有valattr屬性:%s"%hasattr(mc,"valattr"))
print("myclass有method屬性:%s"%hasattr(mc,"method"))
print("myclass的valattr屬性是方法:%s"%hasattr(getattr(mc,"valattr"),"__call__"))
print("myclass的method屬性是方法:%s"%hasattr(getattr(mc,"method"),"__call__"))
方法一:透過異常捕捉來實現邏輯方法二:呼叫hasattr方法>>> hasattr(list, "append")True>>> hasattr(list, "add")False方法三:使用dir方法objlist = dir(k)if "att" in objlist: #do some thing you need print k.attelse:pass