関数空間の名前
- 内蔵スペース:ストレージスペースのPythonインタプリタは、組み込み関数
- グローバルスペース:オープンランタイムPYファイルには、すべての変数との関係に格納し、PYファイル(内部アウト機能)消えます全体PYファイルの終了後に実行される値です。
- ローカル空間:関数定義は、関数名と関数本体との間の対応を記録しません(何も、限り、メモリアドレスがメモリにのみ実行されるよう、一時的に、変数と値の記憶機能を一時的スペースをオープンしました対応、関数の最後に消えます)
ロード順:内部空間>グローバル空間>ローカル空間
値の順序:ローカル空間>グローバル空間>内部空間
スコープ
グローバルスコープ:ビルトイングローバル空間+スペース
ローカルスコープ:ローカル空間
二つのネストされた関数
限り遭遇する変数名()関数が呼び出され、何も()関数呼び出しはありませんではありません
関数呼び出しの実装後は、関数本体のオープンスペースが自動的に破棄されます
2.1ネスト
def func():
a = 1
def foo():
b = 2
print(b) # 2
print(a) # 1
def f1():
print(b) # 2
return f1()
return foo()
print(func())
結果:
2
1
2
なし
地元近くの空間上のスペース内の変数とグローバル変数のスペースを使用し、スペースのために結ばれ、2つのローカル変数は、互換的に使用することはできません
2.2関数参照互いに
def a():
a = 1
c()
print(c)
def c():
c = 3
print(a)
def run():
a()
run()
結果:
<0x0000000002101E18で関数A>
<0x00000000025B98C8における関数c>
出力は内蔵のパラレル変数のメモリアドレス空間の\ cの定義の関数で互換的に使用することはできません
2.3グローバルとローカル以外の
1.グローバルにのみに対応するグローバル変数を変更します
a = 10
def func():
global a # 声明修改全局变量的值
a += 1
print(a)
func()
print(a)
結果:
11
11
それが作成するために、グローバル変数に存在しない場合は、関数内でグローバル変数を変更します。
lst = ["麻花藤", "刘嘉玲", "詹姆斯"]
def func():
lst.append("马云") # 对于可变数据类型可以直接进行访问
print(lst)
func()
print(lst)
結果:
[「ツイストつる」、「カリーナ」、「ジェームス」、「馬」]
[「ねじれつる」、「カリーナ」、「ジェームス」、「マ」]
2.非ローカル変数の値が最も近いローカル空間を変更し、それがグローバル変数空間の値を変更しません。
a = 10
def func():
def f1():
a = 20
def foo():
nonlocal a
a += 1
print(a) # 21
foo()
print(a) # 21
f1()
func()
print(a) # 10
出力:
21
21
10
3人の関数名を使用します
関数名のメモリアドレス
印刷(FUNC)
関数名は、他の変数に割り当てることができます
関数名は、関数のパラメータとして渡すことができます
+()は関数の戻り値に渡された場合の伝達関数名:ポイントに注意してください。
関数名は、関数の戻り値が返されるとして使用することができます
関数名は、コンテナに格納された要素として使用することができます