ホームページ  >  記事  >  バックエンド開発  >  Python の 7 つの変数と組み込み関数のゼロベース入門

Python の 7 つの変数と組み込み関数のゼロベース入門

黄舟
黄舟オリジナル
2017-01-16 14:10:451421ブラウズ

1. グローバル変数とローカル変数
これら 2 つの変数は他の言語の変数と同じです。グローバル変数はコード全体で使用できる単なる変数ですが、ローカル変数の役割は次のとおりです。制限されており、多くの場合コード領域にあります。
なお、グローバル変数の値を変更せずに関数内で呼び出すだけであれば全く問題ありませんが、特別な処理をせずに関数内でグローバル変数の値を変更したい場合は、 Python 言語 この状況の解決策は、呼び出されたグローバル変数と同じ名前のローカル変数を自動的に生成することです。つまり、グローバル変数はシールドされ、変数に対する操作はグローバル変数の値に影響を与えません。 (変わっているように見えますが)
例えば、以下のプログラムでは、関数内でcountの値が変更されていますが、関数の外で出力されるcountの値は5のままです。関数を使用する グローバル変数の値を内部的に変更する場合は、キーワード global を使用して関数内の変数を変更できます。これは、操作がローカル変数を生成するのではなく、グローバル変数に対する操作であることを意味します。それはグローバル変数と同じです。

count=5def Myfun():
     count=10
     print(count)
Myfun()
print(count)

2. 埋め込み (内部) 関数 Python の 7 つの変数と組み込み関数のゼロベース入門 簡単に言えば、埋め込み関数は関数の内部で定義された関数です

内部関数はその外部の関数からのみ呼び出すことができ、転送の外部から呼び出すことはできないことに注意してください。 。言い換えれば、誰が所有しているのか、誰がそれを使用する権利を持っているのかということです。

print("======使用global之后的变量======")
count=5def Myfun():
     global count#声明与赋值不能一块进行
     count=10
     print(count)
Myfun()
print(count)

3. クロージャ

クロージャは、埋め込み関数が外部関数を呼び出すために使用するパラメータです。
この種の関数を呼び出すときは特別な注意が必要です。

print("======内部函数的使用======")def fun1():
     print("fun1()正在被调用")     def fun2():
          print("fun2()正在被调用")
     fun2()
fun1()

4. クロージャー内の変数の問題

次のコードは実行時にエラーを報告します。外部関数のパラメータは組み込み関数内で呼び出され、パラメータ x は関数 Fun2() のグローバル変数であるため、シールド効果により関数エラーが発生します。

def funX(x):
     def funY(y):
          return x*y     return funY
print(funX(5)(8))


上記の問題を解決するには 2 つの方法があります:

1 つは、非スタック データ構造を使用して問題を解決することです

もう 1 つは、非ローカル キーワードを使用して解決することです Python の 7 つの変数と組み込み関数のゼロベース入門

def Fun1():
     x=5
     def Fun2():
          x*=x          return x     return Fun2()#Fun1()



関数の変数の場合 よくよく考えてみると、やっぱり以前習ったこととはちょっと違いますね。

上記は、Python ゼロベース入門の 7 つの変数と組み込み関数の内容です。さらに関連した内容については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。 Python の 7 つの変数と組み込み関数のゼロベース入門

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。