Python変数のスコープ

silencement
リリース: 2019-06-10 15:51:45
オリジナル
2922 人が閲覧しました

Python変数のスコープ

変数スコープ:

一般に、関数の外で定義された変数はグローバル変数となり、関数の内部で定義された変数はローカル変数と呼ばれます。

グローバル変数はすべてのスコープで読み取り可能ですが、ローカル変数はこの関数でのみ読み取ることができます。

関数が変数を読み取るときは、まず関数自体のローカル変数を読み取り、次にグローバル変数の読み取り

グローバル変数

読み取り、すべて読み取り可能

割り当て、グローバル

辞書、リスト可能変更する必要があります

グローバル変数はすべて大文字です


name = 'Tim' #全局变量

def f1():
    age = 18 #局部变量
    print(age,name)

def f2():
    age=19 #局部变量
    print(age,name)

f1()
f2()
>>>
18 Tim
19 Tim
ログイン後にコピー

グローバル変数は関数内で定義することもできます:

name = 'Tim' #全局变量

def f1():
    age = 18 #局部变量
    global name #定义全局变量
    name = 'Eric'
    print(age,name)
f1()
print(name)
ログイン後にコピー

グローバル変数はデフォルトで読み取り可能で、必要に応じて変更できます グローバル変数の値は、関数内で global を使用して定義する必要があります

特殊: リスト、ディクショナリは変更できますが、再割り当てはできません。が必須である場合、グローバル変数は関数内で global を使用して定義する必要があります

NAME = ['Tim','mike'] #全局变量
NAME1 = ['Eric','Jeson'] #全局变量
NAME3 = ['Tom','jane'] #全局变量

def f1():
    NAME.append('Eric') #列表的append方法可改变外部全局变量的值
    print('函数内NAME: %s'%NAME)
    NAME1 = '123' #重新赋值不可改变外部全局变量的值
    print('函数内NAME1: %s'%NAME1)
    global NAME3 #如果需要重新给列表赋值,需要使用global定义全局变量
    NAME3 = '123'
    print('函数内NAME3: %s'%NAME3)
f1()
print('函数外NAME: %s'%NAME)
print('函数外NAME1: %s'%NAME1)
print('函数外NAME3: %s'%NAME3)
>>>
函数内NAME: ['Tim', 'mike', 'Eric']
函数内NAME1: 123
函数内NAME3: 123
函数外NAME: ['Tim', 'mike', 'Eric']
函数外NAME1: ['Eric', 'Jeson']
函数外NAME3: 123
ログイン後にコピー

以上がPython変数のスコープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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