Python「nonlocal宣言・global宣言 ~外にある変数を使う~」

Python

nonlocal:一つ外の関数・global:一番外

こんにちは、徳です。

デジタルDIYができるようコーディング・プログラミング・画像加工・動画編集などを本やYouTubeで勉強しています。

現在は初心者なので、とにかくゆっくり進んでいくと思います。

また、「間違っていること」や「こうした方が良いよ」などがあれば、コメントなどしていただけたら幸いです。

では、いきましょう!

Python

今回は、

nonlocal宣言・global宣言

についてです。

Pythonで関数を使用しているときに、

関数外の変数を使用したい

ことありますよね?

nonlocal宣言・global宣言はともに関数外の変数を使用する時に使うものです。

それではよろしくお願いします。

nonlocal宣言・global宣言

説明

nonlocal宣言・global宣言とは

nonlocal宣言・global宣言とは、

関数外の変数を関数内で使用するために宣言するもの

です。

どんな時に使用するの?

nonlocal宣言・global宣言はともに、

関数外にある変数を関数内で使用したい

ときに使用します。

そもそも、関数内で使用できる変数は、

関数内の変数のみ

です。

つまり、外の変数と同じ変数を使用するには、どちらかの宣言をする必要があります。

何が違うの?

nonlocal宣言・global宣言の違うところは、

参照できる変数の場所

です。

nonlocal宣言

一つ外の関数内の変数

global宣言

一番外の変数

です。

書き方

書き方はともにシンプルです。

nonlocal宣言

nonlocal 変数名

となります。

global宣言

global 変数名

となります。

関数の実行回数の表示 (global宣言)

count = 0
def out_function():
       count = 3
       def in_function ():
             global count
              count  += 1
             print (f"{count}回目")
       return in_function()
out_function()

掛け算をする (nonlocal宣言を使用)

def out_function():
        count = 3
        def in_function():
                nonlocal count
                for x in range(1,10):
                      num = count * x
                      print(f"{count}×{x}={num}")
        return in_function()

out_function()

注意点

あまり使いすぎないようにしよう

理由:変数の中身が変化することもあるため

実際にその関数内で使う変数なら、関数の中で変数を作成しているはずです。

つまり、

関数外の変数は他に使用理由があるはず

です。

徳

その関数内で使うはずではないのです。

その中使いすぎては、気づかないうちに中身が変化してしまう可能性が高くなってしまいます。

そのため、あまり使いすぎないようにしましょう。

まとめ

今回は、

nonlocal宣言・global宣言

について紹介させていただきました。

これらの宣言は、

関数外の変数を関数内で使用するための宣言

です。

基本、関数外の変数を関数の中で使用するとエラーが起きてしまいます。

しかし、

プログラミングをしていると関数外の変数を使用したくなることもよくあります。

その時は、こちらの二つを使用して使えるようにしましょう。

二つの違いは、

nonlocal宣言

一つ外の関数内の変数

global宣言

一番外の変数

です。

間違えないように気をつけましょう。

最後まで読んでいただき、ありがとうございました。

コメント

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