【Python】グローバル宣言とグローバル変数

このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。

AI・データサイエンス、
機械学習の実践力を高めたい方へ

  • プログラミングを0から学びたい
  • データサイエンティスト、データ
    アナリストを目指したい
  • AIエンジニア、大規模言語モデル(LLM)エンジニアを目指したい

AI人材コースを無料体験してみませんか?

  • 無料で120以上の教材を学び放題!
  • Pythonやデータ分析、機械学習など
    AI人材に必須のスキルを無料体験できる!
  • データ分析、AI開発の一連の流れを体験、実務につながる基礎スキルを習得!

1分で簡単!無料!

無料体験して特典を受け取る

はじめに

下記記事の続きになります。

続き:【Python】変数のスコープを理解しよう!初学者向けにわかりやすく解説!

グローバル宣言とグローバル変数

グローバル宣言とは、関数内でグローバル変数にアクセスするための宣言です。また変数には、大きく2種類に分ける事が出来ます。

1つ目がローカル変数(関数定義の内部で定義した変数)2つ目がグローバル変数(関数定義の一番外側で定義した変数)です。サンプルプログラムを2つほど見てみましょう。

glb = 0

def func1():
    glb = 1

def func2():
    global glb
    glb = 5

print(glb) # 0が出力される
func1()
print(glb) # 0が出力される
func2()
print(glb) # 5が出力される

出力結果

0
0
5

1つ目のサンプルプログラムでは、func1関数内のglbはローカル変数です。func2関数内のglbも本来はローカル変数ですが、globalを利用しているため、1行目のglbにアクセスしています。8行目のglb = 5によって1行目に定義したglbの中身が5に上書きされています。上記のプログラムの7行目のglobal宣言をコメント化してみたサンプルプログラムも見てみましょう。

glb = 0

def func1():
    glb = 1

def func2():
    # global glb # この行をコメントアウト(コメント化)する
    glb = 5

print(glb) # 0が出力される
func1()
print(glb) # 0が出力される
func2()
print(glb) # 0が出力される

出力結果

0
0
0

上記のように7行目のglobal宣言をコメント化すると、13行目でfunc2関数を呼び出しても、14行目で出力されるglbの中身は、1行目で定義したglbですので、0が出力されたままになります。

(関数内からグローバル変数にアクセス出来ないため、変数の中身を上書きできていません) 

もう一つのサンプルを見てみましょう。

var1 = 'グローバル変数'

def sample():
    var2 = 'ローカル変数'
    return (var1, var2)

print(sample())

出力結果

('グローバル変数', 'ローカル変数')

2つ目のサンプルプログラムの例では、sample関数内5行目にて、var1を呼び出していますが、var1sample関数の外側に定義されているため、globalを用いた宣言は不要です。つまり、var1はグローバル変数(関数定義の外枠で定義した変数)ですので、globalを用いることなくアクセス出来ています。

【無料動画:倍速で学ぶ!生成AIを活用したプログラミング勉強法(短縮版)】

生成AIを活用して効率的にプログラミングを学ぶ方法を解説しています。生成AIの基本的な仕組みや効果的な活用法、注意点についても詳しく説明。勉強法とともに生成AIそのものについても学べる内容となっています。ぜひご覧ください! 

全編は、AI Academy公式LINEで配信中です。

✨AI人材コース 受講お申込み受付中!

AI Academy Bootcamp ではAI・データサイエンス、機械学習、Webアプリ開発の実践力を高める全6コース約50時間以上の動画が見放題!AIの学習に必須のPythonの学習から始まり、ITリテラシー、LLM学習など、目的に応じた幅広い分野をカバーしています。LINE公式では、お得な割引クーポンもプレゼントしています!

単独で学ぶより、全コースを一気に学ぶことで得られる「学習シナジー効果」が特長。
基礎から応用まで、データ分析とAI開発のスキルを効率よく身につけられます。



  • 30時間以上の動画講座が見放題!
  • 追加購入不要!
    これだけで学習できるカリキュラム
  • (質問制度や添削プラン等)
    充実したサポート体制!

1分で簡単!無料!

AI人材コースを見る



無料体験して特典を受け取る