本論文では、Pythonの機能の詳細については、次の側面から開始します。
- 変数のスコープの機能
- 関数内のクロージャ現象
- 関数デコレータ
- 標準ライブラリデコレータ
- 重ね合わせデコレータ
- パラメトリックデコレーター
デフA(FUNC):
デフB():
リターン
Bを返します
LEGB原則機能:ローカルスコープ - >外部のスコープ - >グローバルスコープ - >これはすることができ...
ファイルは、グローバルスコープのBで機能体Bは、ローカルスコープと呼ばれる関数B、Bの外側の範囲と呼ばれる関数本体用
あなたはグローバル変数のq Bに変更を加える必要がある場合は、変数を宣言するために世界的なキーワードを使用してください
関数クロージャ:
それは閉鎖空間(Aで囲まれたB)と名付けられた覚えて非グローバルスコープの関数ができ:ボディBのために定義されたスコープ行動の関数の変数cが閉鎖基準と呼ばれる呼び出すことができます
変数は自由変数CCと呼ばれる特徴:未結合の可変ドメインは(グローバルなど)の自由を宣言するために非ローカル変数を使用して、ローカルアクションqに言及します
デコレーター:
定義:目的関数目的関数が変更される前に、別の機能実行リットルの行動の機能を強化します
パフォーマンス:exはデコレータのような形をしています
用途:@A
デフターゲット():
パス
パラメータ化デコレータは:パラメータが渡されるようデコレータは、目的関数は、関数名を受け入れる知って、そしてどのように添えない場合パラメータを持つ目的関数?
問題の処理パラメータにデコレータ入れ子関数外側層、目的関数
デフ(* argsを、** kwargsから)を追加します。
デフA(FUNC):
デフB(* argsを、** kwargsから):
リターンRES
Bを返します
Aを返します
前記追加関数g C工場の関数呼び出し、パラメータが目的関数の処理専用
標準ライブラリデコレータ:
functools.lru_cache lru_cache少なくとも最近最近実行の重複を避けるために、記録を作成するために実行される機能のために使用されています
メモ機能は大幅に実行している時間を簡素化することです
シングルポイントの配布functools.singledispatch dを
この設計はまた、CBVのDjangohモードframeworkz ZモードとRESTに反映されます
異なる方法で、最初のパラメータの同じタイプを実行する関数のセット
(複数のディスパッチ:特定の機能に応じて複数のパラメータを選択)