0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python 変数スコープについて

Last updated at Posted at 2019-01-04

概要

Pythonの変数スコープについて、時々分からなくなるので、こちらに記載します。

変数スコープの種類

グローバル変数

  • グローバル変数はローカル変数内外のどの範囲からもアクセス可能
    (①、②の出力を参照)
# coding: utf-8

GLOBAL = "GGG"  # グローバル変数定義
def gfunc():       # 任意の関数を定義
    print(GLOBAL)  
gfunc()            # 関数内のprint(GLOBAL)を出力 ①
print(GLOBAL)      # グローバル変数でのprint(GLOBAL)を出力②

ローカル変数

  • ローカル変数は定義した関数外の箇所では使用できない。
    (③の出力を参照)
# coding: utf-8

GLOBAL = "GGG"

def lfunc():      # 任意の関数を定義
    LOACL = 'LLL' # ローカル変数定義
    print(LOACL)  # lfunc関数の内容は上記のLOCAL変数内文字列(LLL)を出力する内容

lfunc()#          # lfunc関数を実行して、文字列 = LLLを出力
print(GLOBAL)     # グローバル変数でのprint(GLOBAL)を出力
print(LOACL)      # 関数外でLOCAL変数にアクセス -> エラーになる!!!③
  • その他
    • local変数を明示的にprintする事も可能
# coding: utf-8

GLOBAL = "GGG"

def lfunc():      # 任意の関数を定義
    LOACL = 'LLL' # ローカル変数定義
    print(LOACL)  # lfunc関数の内容は上記のLOCAL変数内文字列(LLL)を出力する内容
    print(locals())

lfunc()           # lfunc関数を実行して、文字列 = LLLを出力。また、print(locals())でlocal変数は何が代入されているかをprintする ※ここでは{'LOACL': 'LLL'}と出力される
print(GLOBAL)     # グローバル変数でのprint(GLOBAL)を出力

参照ドキュメント

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?