高度な機能
1、名前空間 - 三種類
#ビルトイン名前空間 - のpythonインタプリタ
#あなたは、組み込みの名前空間を使用するために開始することができます名前を格納するためのPythonインタプリタです
#内蔵の名前は、ブート時の通訳で、メモリにロードされます
#グローバル名前空間に - 私たちは、コードを書くが、コードは関数ではありません
#は、メモリにロードされた順番に上から下へのプログラムで実行中です
#どこに設定されているすべての変数と関数名を入れて
#ローカル名前空間 - 機能
#は関数定義の内部名です
呼び出された関数は、この名前空間によって実行される関数の最後に名前空間が生成されます#が再び消えます
#ローカル:あなたはグローバル、組み込みの名前空間名を使用することができます
グローバルで#:あなたは、組み込みの名前空間名を使用することができますが、局所に使用することはできません
#内蔵:あなたは、ローカルおよびグローバルの名前を使用することはできません
DEF 最大(L): 印刷(' FUNC maxの' ) を印刷(最大([1,2,3])) #最大FUNCの中 #通常の状況下では、組み込みの名前を直接使用する #私たちは、グローバルを定義する場合と、同じ名前の組み込みの名前の名前空間は、グローバルネーム使用する際に #を私自身が時々私は私の上司が見つからないとき #彼は親が見つからなかった場合は、より高いレベルにあることを、それが見つかりませんでした内蔵された名前空間のエラーではありません #お互いに共有していない、複数の機能は、複数の独立したローカルな名前空間を持っている必要があります
2.適用範囲 - 2種類
#グローバルスコープ - 全体像 - とグローバルな名前空間名はグローバルスコープ--globals(の一部で構築されました)
#ローカルスコープ - ローカルでの役割 - 機能(ローカルスコープに属している名前のローカル名前空間)--locals()
#グローバルスコープグローバル A. 1 = DEF FUNC(): グローバル・A A = 2 FUNC()プリント(A) #2 #不変データ・タイプのが、グローバルスコープのローカル変数を考慮して #が、直接変更できない 位場合あなたは、変更したい、あなたはプログラムの先頭でグローバルなステートメントを追加する必要があります #ローカル(関数)でグローバル変数を宣言すると、その変数はグローバル変数になり、すべてのローカル操作に有効です。
#地元の人々については、ローカル変数を参照してください 。A = 1 、B = 2 DEF :FUNC() X = ' AAA ' Y = ' BBB ' 印刷(約地元の人々 ()) #のビューローカル変数 FUNC() 印刷(地元の人について()) #のグローバルディスプレイ 印刷(グローバル()) #は、グローバルな視点 #のグローバルは、常にグローバルの名前印刷 #のどの位置どこ地元の人によると、地元の出力を
3、ネストされた関数
DEF MAX(A、B): 返すIF A> B 他B DEFの the_max(X、Y、Z): #ネストされた関数呼び出し Cは= MAX(X、Y) リターンMAX(C、Z) 印刷(the_max (1,2,3))
3.1、非局所的用法
= 1。 DEF 外部(): A = 1 DEF インナー(): A = 2 DEF Inner2(): 非局所 #は上記第一の層のローカル変数宣言 = 1 +。 #変更の不変データタイプ Inner2() 印刷(' ## ## A:'、A) #3(機能A = 2の場合は除去内、結果は2である)。 内側() プリント(' **:'、A) #取り外した場合1(インナー。関数A = 2、結果は2)である 外() 印刷(' グローバル:'、A) #1(内側関数A = 2は、結果があれば除去した。1) #非局所ローカル変数のみ最寄りのローカル変数層の上層から現在の関数を見つけるために使用することができる 位意志非局所変化の関数内部変数を宣言し最近の現在のレベルからのローカル変数の機能に影響 #グローバル無効 #を最新のものに部分的にしか影響に
4、関数名を割り当てることができます
DEF FUNC(): プリント(123 ) FUNC() #の関数名は、メモリのアドレスである123# 関数func2 = FUNC #の関数名を割り当てることができる 関数func2() #123
DEF FUNC(): プリント(123 ) DEF ワッハッハー(F): #F() リターンのF #の関数の戻り値として関数名をすることができる qqxing =ワッハッハー(FUNC) #1 名がパラメータとして与えることができる (qqxing)
5、クロージャ:ネストされた関数は、内部変数関数は、外部関数の呼び出し
DEF 外側(): A = 1 DEF 内(): プリントは(a)の 戻り内側 イン = 外側() (イン)