名前空間の機能、ネストされた関数を(グローバル、非ローカル)を使用して、関数名

関数空間の名前

  1. 内蔵スペース:ストレージスペースのPythonインタプリタは、組み込み関数
  2. グローバルスペース:オープンランタイムPYファイルには、すべての変数との関係に格納し、PYファイル(内部アウト機能)消えます全体PYファイルの終了後に実行される値です。
  3. ローカル空間:関数定義は、関数名と関数本体との間の対応を記録しません(何も、限り、メモリアドレスがメモリにのみ実行されるよう、一時的に、変数と値の記憶機能を一時的スペースをオープンしました対応、関数の最後に消えます)

ロード順:内部空間>グローバル空間>ローカル空間

値の順序:ローカル空間>グローバル空間>内部空間

  1. スコープ

    グローバルスコープ:ビルトイングローバル空間+スペース

    ローカルスコープ:ローカル空間

二つのネストされた関数

限り遭遇する変数名()関数が呼び出され、何も()関数呼び出しはありませんではありません

関数呼び出しの実装後は、関数本体のオープンスペースが自動的に破棄されます

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人の関数名を使用します

  1. 関数名のメモリアドレス

    印刷(FUNC)

  2. 関数名は、他の変数に割り当てることができます

  3. 関数名は、関数のパラメータとして渡すことができます

    +()は関数の戻り値に渡された場合の伝達関数名:ポイントに注意してください。

  4. 関数名は、関数の戻り値が返されるとして使用することができます

  5. 関数名は、コンテナに格納された要素として使用することができます

おすすめ

転載: www.cnblogs.com/lav3nder/p/11801516.html
おすすめ