{category}

Python - グローバルとノンローカル

global

グローバル(モジュールとパッケージ

意味 全体で有効な変数


globalとは?

global文は、Pythonのプログラムで、関数の中で、その関数外の変数(グローバル変数)を操作したいときに使われます。global文を使わないと、関数内で同じ名前のローカル変数が作られてしまい、グローバル変数を変更できません。

globalの具体的な使い方

グローバル変数の操作例

# グローバル変数
total_count = 0

def increment_count(value):
    global total_count
    total_count += value
    print(f"カウントが{value}増加しました。現在の合計: {total_count}")

# 関数を複数回呼び出す
increment_count(5)
increment_count(3)
increment_count(2)

print(f"最終的な合計: {total_count}")

👇出力結果

カウントが5増加しました。現在の合計: 5
カウントが3増加しました。現在の合計: 8
カウントが2増加しました。現在の合計: 10
最終的な合計: 10

この例では、グローバル変数 'total_count' を定義し、'increment_count' 関数内で 'global' キーワードを使ってこの変数を操作しています。関数が呼び出されるたびに、指定された値だけ 'total_count' が増加します。'global' を使うことで、関数内からグローバル変数を直接変更できます。

グローバル変数の初期化例

# グローバル変数(初期化されていない)
config = None

def initialize_config():
    global config
    config = {
        "database": "mydb",
        "host": "localhost",
        "port": 5432
    }
    print("設定が初期化されました。")

def get_config():
    if config is None:
        print("設定が初期化されていません。初期化します。")
        initialize_config()
    return config

# 設定を取得
print(get_config())

# 再度設定を取得
print(get_config())

👇出力結果

設定が初期化されていません。初期化します。
設定が初期化されました。
{'database': 'mydb', 'host': 'localhost', 'port': 5432}
{'database': 'mydb', 'host': 'localhost', 'port': 5432}

この例では、グローバル変数 'config' を使って設定情報を管理しています。'initialize_config' 関数で 'config' を初期化し、'get_config' 関数で設定を取得します。'global' キーワードを使うことで、関数内からグローバル変数 'config' を変更できます。この方法は、アプリケーション全体で共有される設定の管理によく使われます。

globalに関するよくある質問

Q. globalを使う理由は?
A. globalキーワードは、関数内でグローバル変数を参照したり変更したりする際に使用します。これにより、ローカル変数ではなくグローバル変数を操作することを明示的に示すことができます。
Q. globalを使わないとどうなる?
A. globalを使わずに関数内で同名の変数を操作すると、新しいローカル変数が作成されます。これにより、意図せずグローバル変数とは別のローカル変数を操作してしまう可能性があります。

globalが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのglobalやimport、from、from package.subpackage import module、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Pythonを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

import

外部機能の取り込み

種類: モジュールのインポート

from

一部機能の取り込み

種類: モジュールのインポート

from package.subpackage import module

パッケージからモジュールを読み込む

種類: 絶対インポート

is

同一のものか

種類: アイデンティティ演算子

finally

エラー時でも必ず実行

種類: 例外処理