作用:隨時修改代碼 (在函數或類定義完成之後,再去修改函數的實現過程) """類似猴子補丁在函數定義好之後,再去更改他的行為"""import typesclass Valley: def func(self): return "等待宣告"def common(self): return "只有永不 ...
作用:隨時修改代碼
(在函數或類定義完成之後,再去修改函數的實現過程)
"""
類似猴子補丁
在函數定義好之後,再去更改他的行為
"""
import types
class Valley:
def func(self):
return "等待宣告"
def common(self):
return "只有永不遏制的奮鬥"
if __name__ == '__main__':
v = Valley()
# 只替換當前實例的方法
v.func = types.MethodType(common, Valley)
print(v.func())
# 原方法實現規則不變
v2 = Valley()
print(v2.func())
output:
只有永不遏制的奮鬥
等待宣告
使用場景:
在接手別人代碼的時候,想要對某函數進行修改,但同時又擔心會有別處調用此方法,所以可以在自己的代碼中在不修改原代碼的基礎上執行另一套邏輯
但我覺得還是定義個子類,重寫原方法的方式達到更改程式行為的目的會更好,今天就是淺淺的瞭解了一下,後面遇到坑再補充
只有永不遏止的奮鬥,才能使青春之花,即便是凋謝,也是壯麗地凋謝