六、帶參數的裝飾器
?
?
七、函數生成器
?
運行結果:?
?
八、通過反射操作對象方法
1.添加和覆蓋對象方法
?
?2.刪除對象方法
通過使用內建函數:?delattr()
# 刪除
x.a()
print("通過反射刪除之后")
delattr(x, "a")
x.a()
3 通過反射判斷對象是否有指定方法
通過使用內建函數:?hasattr()
# 通過反射判斷對象是否有指定方法
print(hasattr(x, "a")) # True
print(hasattr(x, "e")) # False
4 通過反射讀取方法
通過使用內建函數:?getattr()
# 通過反射讀取方法
f = getattr(x, "a") # 通過反射將x對象的a方法賦值給f
f() # f() = a()# 調用x對象的所有方法
for i in ["a", "b", "c", "d"]:f = getattr(x, i)f()
?
?