Python初心者がグローバル変数とローカル変数を理解していく

Python初心者がグローバル変数とローカル変数を理解していきます。

■環境

Google Colaboratory

■ローカル変数を理解する

def say_hallo():
    message = 'こんにちは。私はPythonという名のロボットです。'
    print(message)

ローカル変数を理解するために、say_halloという関数を定義し、呼び出してみます。

「say_hallo()」と呼び出してみると、say_halloで定義した処理が実行されました。

しかし、say_halloという関数の中で定義した変数を「print(message)」で呼び出してみると、

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

NameError: name ‘message’ is not defined

上記のようなエラーメッセージが表示されました。「message」は定義されていませんという内容です。

say_halloという関数で定義された変数はローカル変数と呼び、関数の中でしか使えない変数。ローカルの意味自体が「限定される特有なこと」。

say_halloという関数で定義された変数を呼び出そうとしても、「定義されていません」というメッセージが表示される。定義された関数の外では呼び出せない。

■グローバル変数を理解する

次にグローバル変数を理解していきます。

message_test = 'こんにちは。私はPythonという名の試作ロボットです。'
def say_hallo_test():
  print(message_test)

グローバル変数を理解するために、上記の関数を定義します。

say_hallo_testという関数を定義し、「say_hallo_test()」で呼び出してみます。「say_hallo_test()」と呼び出してみると、say_hallo_testで定義した処理が実行されました。今回はローカル変数の時とは違い、変数が関数の外にありますが、ちゃんと実行されています。

これがグローバル変数。グローバル変数であれば、どこでも使うことができる。ローカル変数とは違い、限定されず、特有なものではない。グローバル自体の意味が「世界的な」ということ。Python上の世界であればどこでも使うことができるといっても良いのかもしれない。

コメント

タイトルとURLをコピーしました