Python 無料で独習 014 グローバル変数とローカル変数

Python 無料で独習 014 グローバル変数とローカル変数

グローバル変数とローカル変数

タイトルからして聞きなれない単語でしたが、
冒頭で今西先生が概要を説明してくれます。

グローバル変数
どこからでも参照可能な変数

ローカル変数
ある特定の地域でしか参照できない変装

言葉だけ聞いてもよくわかりません。
今西先生の書くコードを見ながら理解しようと思います。

前回学習した関数を書きます

def say_something():
  message='こんにちは、私は鈴木です。'
  print(message)

say_something()

こんにちは、私は鈴木です

でこの後、関数内で定義された変数
message='こんにちは、私は鈴木です。'
を関数の外で出力しようとします。
すると、

print(message)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-5-83cfdf559502> in <module>()
----> 1 print(message)

NameError: name 'message' is not defined

エラーの内容は詳しくわかりませんが、
message
が定義されていないとの内容が出ています。

どういうことかというと、
この関数内で定義された
変数message
ローカル変数なのだそうです。
ようは、新しく定義された関数内でしか使えない変数ということらしいです。

ではグローバル変数とは?
前回とは逆で、まず関数の外で変数message1を定義します。
その変数を使い関数を定義して実行してみます。

message1 = 'こんばんは、私は佐藤です。'

def say_something1():
  print(message1)

def say_something1()

こんばんは、私は佐藤です。

エラーが起こらず、
しっかりとメッセージを出力しました。
このmessage1がグローバル変数となります。
初めて聞く単語で最初は戸惑いましたが
コードを書きながら説明を聞いているとちゃんと理解できました。
今日も有難うございました、今西先生!

プログラミン独習カテゴリの最新記事