【Python入門】関数内でグローバル変数を使う方法をわかりやすく解説
「グローバル」と「ローカル」という用語は、スクリプトやプログラム内における変数の有効範囲(スコープ)を表します。グローバル変数とはプログラムのどこからでもアクセスできる変数のことで、ローカル変数はその変数が定義された範囲(関数の中など)からしかアクセスできません。ローカル変数には、グローバルな位置からアクセスすることはできない点に注意しましょう。
グローバル変数とは、関数の外側で定義・宣言された変数のことで、プログラム内のどこからでも自由に利用できます。
ただし、関数のスコープ内に同じ名前の変数が定義されている場合は、グローバル変数の値ではなく、関数内で定義された値が優先して出力されます。
例:関数の内外からグローバル変数へアクセスする
以下のコードは、グローバル変数 k を関数 foo() の内部と外部の両方からアクセスする例です。
# この関数はグローバル変数 k を使用します
k = "I like green tea"
def foo():
print(k) # 関数内からグローバル変数にアクセス
foo()
print(k) # 関数外からグローバル変数にアクセス
出力結果
I like green tea I like green tea
このように、関数内でも関数外でも同じグローバル変数の値が参照できていることがわかります。
関数内でグローバル変数を変更するには「global」キーワードを使う
関数内でグローバル変数の値を読み取るだけなら上記の書き方で問題ありませんが、値を代入(変更)する場合は注意が必要です。Pythonでは、関数内で変数に代入すると自動的にローカル変数として扱われるため、global キーワードで宣言しておかないとエラーが発生します。
k = "I like green tea"
def change_tea():
global k # これがグローバル変数であることを宣言
k = "I like coffee" # グローバル変数の値を変更
change_tea()
print(k)
I like coffee
global を宣言したことで、関数内での変更が関数外のグローバル変数にも反映されています。グローバル変数は便利ですが、どこで値が書き換えられたか追いにくくなり、バグの原因にもなるため、実際の開発では必要最小限にとどめるのが良い設計とされています。
-
WindowsでPythonを使う方法|インストールから実行・モジュール導入まで完全解説
初心者にも学びやすいプログラミング言語の代表格として、Pythonは世界中の何百万人ものコーダーに選ばれています。学習のハードルが低く、Windows・macOS・Linuxなど主要なOSすべてでサポートされており、Webサイト開発からデスクトップゲーム制作まで、幅広いプロジェクトに活用できるのが魅力です。 macOSやLinuxではPythonが最初からインストールされていることが多い一方、Windowsではいくつか追加の手順を踏む必要があります。この記事では、WindowsでPythonをインストールし、実際に使い始めるまでの流れをわかりやすく解説します。 WindowsへのPyt
-
PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本
Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした