Python のグローバル変数とローカル変数を理解する

PHP中文网
リリース: 2017-06-20 15:52:01
オリジナル
1553 人が閲覧しました

Pythonのグローバル変数とローカル変数を理解する

1. 定義された関数内の変数名が初めて出現し、= 記号の前にある場合、それはローカル変数として定義されていると見なされます。この場合、グローバル変数で変数名が使用されているかどうかに関係なく、関数内ではローカル変数が使用されます。例:

# _*_ coding: utf-8 _*_
num = 110
def func():
    num = 1
    print(num)
func()
输出结果:1
ログイン後にコピー
# _*_ coding: utf-8 _*_
num = 110
def func():
    num += 1
    print(num)
func()
输出结果:
ログイン後にコピー

UnboundLocalError: 割り当て前にローカル変数 'num' が参照されました

エラー メッセージ: ローカル変数 num は割り当て前に適用されます。つまり、変数を定義せずに使用されます。これは、ローカル変数がグローバル番号を使用する代わりに、ここで定義されています。

まとめ: 関数内の変数名が初めて出現し、= より前に出現した場合、それはローカル変数を定義しているとみなされます

2. 関数内の変数名が初めて出現し、= 以降に出現し、その変数がグローバル ドメインで定義されている場合、その変数がグローバル ドメインで定義されていない場合は、ここでグローバル変数が参照されます。 「変数が定義されていません」エラーが発生します。例:

# _*_ coding: utf-8 _*_
num = 110
def func():
    num1 = num +  1
    print(num1)
func()
输出结果:
111

3、函数中使用某个变量时,该变量名既有全局变量也有同名的局部变量,则会使用局部变量,例如:
ログイン後にコピー
# _*_ coding: utf-8 _*_
num = 110
def func():
    num = 200
    num1 = num +  1
    print(num1)
func()
输出结果:
201
ログイン後にコピー
4、在函数中,如果想给全局变量赋值,则需要用关键字global声明,例如:
ログイン後にコピー
# _*_ coding: utf-8 _*_
num = 100
def func():
    num = 300
    num1 = num +  1
    print(num1)
func()
print num
输出结果:
ログイン後にコピー

301<br>100

は、次の番号を宣言します:

# _*_ coding: utf-8 _*_
num = 100
def func():
    global  num
    num = 300
    num1 = num +  1
    print(num1)
func()
print num
ログイン後にコピー
输出结果:
ログイン後にコピー

301<br>300

from:

<br>
ログイン後にコピー

以上がPython のグローバル変数とローカル変数を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート