Pythonでローカル変数とグローバル変数を使う際の難しさを詳しく解説

巴扎黑
リリース: 2017-09-19 11:06:28
オリジナル
1912 人が閲覧しました

ローカル変数: 関数内で定義された変数。そのスコープは現在の関数であり、現在の関数でのみ機能します。

グローバル変数: コードの先頭で定義される変数。スコープはコード全体であり、コード全体に影響します。

まず以下の例を見て、最後に結論を述べましょう。

name = 'PythonTab'
def func1():
    print('my name is %s' %(name))
    name = 'PythonTab.com'
    print('my name is %s' %(name))
func1()
print(name)
ログイン後にコピー

出力結果:

my name is PythonTab
my name is PythonTab.com
default
ログイン後にコピー

結論: グローバル変数とローカル変数が同じ場合、関数内ではローカル変数が最初に使用されます。ローカル変数がない場合は、グローバル変数が使用されます

とすると、関数内でローカル変数をグローバルに相対させたい 変数には効果があるので、関数内で glob を使用できます。

name = 'default'
def func2():
    global name
    name = 'PythonTab.com'
    print(name)
func2()
print(name)
ログイン後にコピー

の出力結果を見てみましょう。

PythonTab.com
PythonTab.com
ログイン後にコピー

の出力結果:

nameList =['Python','Tab','.com']
def func3():
    nameList[0] = 'python'
func3()
print(nameList)
ログイン後にコピー
['python','Tab','.com']
ログイン後にコピー

出力結果:

nameList =['Python','Tab','.com']
def func4():
    nameList = []
func4()
print(nameList)
ログイン後にコピー

ここでnameListが確認できます。 このグローバル変数は関数内では呼び出されませんが、グローバル変数は変更されています。 Python では、リストや辞書などの要素の値を変更するだけであれば、glob は必要ありません。リスト全体を変更したい場合は、glob が必要です。

['Python','Tab','.com']
ログイン後にコピー

出力結果:

nameList =['Python','Tab','.com']
def func5():
    gloabl nameList
    nameList = []
func5()
print(nameList)
ログイン後にコピー

概要: ローカル関数は関数内でのみ動作し、グローバル関数はコード全体で動作します。関数内でグローバル変数の値を変更したい場合は、glob を使用します。リストやディクショナリなどの特定の値のみを変更する場合は、グローバルを使用せずにグローバル変数を変更できます。

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

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