クローズドパック、アクセサリーを簡単に理解
957 ワード
閉鎖とは何ですか.1つの関数の内部にもう1つの関数を定義し、この関数が外部の関数の変数を用いた場合、この関数および使用するいくつかの変数を閉パケットと呼ぶ.
デザイナ書き込みコードの導入はオープンクローズの原則に従い、この原則ではオブジェクト向けに開発されているが、関数式プログラミングにも適用され、簡単に言えば、実装された機能コードは修正されないことを規定しているが、拡張することができる.
クローズド:実装された機能コードブロックオープン:拡張開発
装飾器は本質的にPython関数であり、他の関数がコードの変動を必要とせずに追加機能を追加することができ、装飾器の戻り値も関数オブジェクトである.
ユニバーサルデコレーション
装飾の適用シーン導入ログ 関数実行時間統計 関数前予備処理 を実行する.関数実行後クリーンアップ機能 権限チェック等シーン キャッシュ
# , , ,
# , , , ,
def out_func(x):
def in_func():
#
print(x)
return in_func
#
ret = out_func(" ")
#
ret()
デザイナ書き込みコードの導入はオープンクローズの原則に従い、この原則ではオブジェクト向けに開発されているが、関数式プログラミングにも適用され、簡単に言えば、実装された機能コードは修正されないことを規定しているが、拡張することができる.
クローズド:実装された機能コードブロックオープン:拡張開発
装飾器は本質的にPython関数であり、他の関数がコードの変動を必要とせずに追加機能を追加することができ、装飾器の戻り値も関数オブジェクトである.
ユニバーサルデコレーション
def set_fun(func):
def call_fun(*args, **kwargs):
return func(*args, **kwargs)
return call_fun
@set_fun # @set_fun ===>test = set_fun(test)
def test():
print("test")
test()
装飾の適用シーン