このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。
はじめに
下記記事の続きになります。
続き:【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
を呼び出していますが、var1
はsample
関数の外側に定義されているため、global
を用いた宣言は不要です。つまり、var1
はグローバル変数(関数定義の外枠で定義した変数)ですので、global
を用いることなくアクセス出来ています。
✨LINE友だち限定:特別な「動画プラン」受講お申込み受付中!
クリスマスに未来への投資をしませんか? AI Academy Bootcamp LINE公式 では、期間限定で通常の「動画プラン」に 「生成AIコース」 を追加したスペシャルプランをご用意!さらにお得な割引クーポンもプレゼントしています!
🎁業務や学習に役立つライブラリーをプレゼント !
オンラインプログラミングスクールのAI Academy Bootcamp LINE公式のライブラリーでは無料動画、講座、最新技術資料など、学習や業務に役立つ秀逸な教材や実践的なリソースを豊富に取り揃えています!毎週新しいコンテンツも更新中です。LINE友だち登録でプレゼントします。ぜひご活用ください!
LINE Libraryで人気 の動画です。
【倍速で学ぶ!生成AIを活用したプログラミング勉強法】 生成AIを活用して効率的にプログラミングを学ぶ方法を解説しています。生成AIの基本的な仕組みや効果的な活用法、注意点についても詳しく説明。勉強法とともに生成AIそのものについても学べる内容となっています。ぜひご覧ください!
AI Academy Bootcamp ではAI・データサイエンス、機械学習の実践力を高める全4コース40時間以上の動画が見放題!AIの学習に必須のPythonの学習から始まり、データサイエンス・機械学習など、目的に応じた幅広い分野をカバーしています。