作用:隨時修改代碼
(在函式或類定義完成之后,再去修改函式的實作程序)
"""
類似猴子補丁
在函式定義好之后,再去更改他的行為
"""
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:
只有永不遏制的奮斗
等待宣告
使用場景:
在接手別人代碼的時候,想要對某函式進行修改,但同時又擔心會有別處呼叫此方法,所以可以在自己的代碼中在不修改原代碼的基礎上執行另一套邏輯
但我覺得還是定義個子類,重寫原方法的方式達到更改程式行為的目的會更好,今天就是淺淺的了解了一下,后面遇到坑再補充
只有永不遏止的奮斗,才能使青春之花,即便是凋謝,也是壯麗地凋謝轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535989.html
標籤:其他
