研究では、11のpythonノート

まず、レビュー

三項演算子#の
変数#受信結果=条件が他の真の条件である場合に生じる偽条件の結果である
変数#受信結果、他=「真の結果」状態であれば「偽の結果」

#名前空間とスコープ
#3種類:ビルトイングローバルローカル
#スコープ:地元の人々に関するグローバルローカルグローバル()()
グローバル()ローカル変数はグローバル宣言
#ローカル以外のローカル部分の最後の上層に宣言された変数
#スコープチェーン:小さなと変数をスペースを見つけるために自分の名前を起動したときに
あなたが見つけるまで、#を見つけるための層によって外側の層の上に見つけることができません
#はエラーで見つけることができません

ネストされたコールとネストされた関数定義#の
#は関数内の関数を-defined外直接呼び出すことができない
変数#内部関数の外部で使用することができる
関数名#の性質
#メモリの文字列であるアドレス
#を割り当てることができ、コンテナの要素型として使用することができ、引数および戻り値- >ファーストクラスオブジェクト

#を閉じパッケージ:内部機能は、外部変数の数の関数で使用
DEF外側を()
= 1
DEF内():
プリント(a)は、
内部戻り

I =)(アウター
I()

IIデコレータを
#デコレータ形成過程:最もシンプルな内装は、ユニバーサルパラメータの戻り値パラメータがある
#デコレータロール
#は関数が呼び出され、変更したいのですが、また前と後に元の関数に機能を追加する必要はありません
オープンクローズ原理:#原理
#シンタックスシュガー:@
固定Decoratorパターン#の


インポート時間
は##印刷(time.time())現在の時刻を取得するには#
## time.sleep(10)
#1
#DEF Timmer(F):デコレータの#1の機能
インナーデフ# ():
#= time.time()の開始
に装飾することが#RET = F()関数を#
#= time.timeエンド()
印刷(エンド-スタート)
#リターンRET
#インナー返す

##シンタックスシュガーの@timmerを@デコレータ関数
#デフFUNC():#が飾られた関数
#time.sleep(0.01)
印刷( 'みなさん、こんにちは良い上司良い同僚')
リターン'ハッピーニューイヤー'
#1
の##のFUNC = Timmer(FUNC)#糖衣構文が文章ではないでしょう
RET FUNC =#()#inner
#印刷(RET)

アクション#デコレーター--->機能を変更する必要はありませんが呼び出され、だけでなく、前と後に元の関数に機能を追加したいされて
ちょうど機能、#1 timmerがデコレータでありますいくつかの装飾

#原則:クローズド原則開く
#開口部:オープン拡張
#は閉鎖さ:修正が閉じ
'「」
機能付きデコレータ#デコレータは、パラメータ
#デコレータ機能:デフtimmer(F)
DEF内部を(* argsを、** kwargsから):
スタート= time.time()
RET = F(* argsを、** kwargsから)#添え関数
終了= time.time()
印刷(エンド-スタート)
リターンRETの
復帰インナー

@ timmer#シンタックスシュガーの@デコレータ関数名の
デフFUNC(a、b)は: #の機能が飾られている
time.sleep(0.01)
を印刷( '良い上司良い同僚みなさん、こんにちは'、a、b)は
'ハッピーニューイヤー'リターン
@timmerを#シンタックスシュガーの@デコレータ関数名の
デフfunc1の(A):
time.sleep(0.01)
を印刷( 'みなさん、こんにちは良い上司同僚'、A、B)
'ハッピーニューイヤー'リターン

#のFUNC = Timmer(FUNC)
#RET = FUNC(1,2)
RET FUNC =(1、B = 2)
印刷(RET)
'' '
"" ""
固定フォーマット#デコレータ
デフラッパー(F):#デコレータ関数、fが飾られる関数の名前です
(* argsを、** kwargsからDEFインナー ):#が定義します関数内で
「を実行するために装飾的な関数である前に、」「」「
RET = F(* argsを、** kwargsから)#が飾られていた機能
「'」を実行するために装飾的な機能であることの後に」「」
リターンRET
()を追加していない、名前を返すインナー#関数を返します

#@wrapperシンタックスシュガーの@デコレータ関数名
:(a、b)は、DEFのFUNCを
time.sleep(0.01)
、(印刷を'良い上司良い同僚みなさん、こんにちは'をB)
リターン「新しい髪」

RET = FUNC()#インナーラッパー関数funcで行うと、関数の戻り値を返し
、印刷(RET)
「」」

おすすめ

転載: www.cnblogs.com/xiuyou/p/11258454.html