こんばんは。
前回は、組み込み関数、必須引数とオプション引数の関数を
勉強しましたね。
今回は、変数の[スコープ]についてです。
なんか、理屈っぽくて面白くないと思いますが、
重要ですよ。
定義した変数に対して、プログラムの中で読み書きが出来る範囲があります。
この範囲の事をスコープと呼びます。
「変数を読む」とは、スコープ内で、その変数を探す事です。
「変数を書く」とは、変数の値を変更する事です。
変数が、プログラム内のどこで定義されるかによって、その変数の
スコープが決まります。
関数やクラス(今後、勉強します)の外で変数を定義すると、
グローバルスコープとなり、プログラム内のどこからでも
読み書きが出来ます。
⇒グローバル変数と呼びます。
逆に、関数やクラスの中で定義された変数は、ローカルスコープとなり、
関数、クラスの中でしか、読み書き出来ません。
⇒ローカル変数と呼びます。
aa=1 bb=2 cc=3 def BC(): print(aa) print(bb) print(cc) BC()
上記は、関数やクラスの外で変数(aa.bb.cc)を定義しているので、
グローバルスコープ(変数)となり、関数の中からも含め
どこからでも読み書き可能です。
def BC(): aa=1 bb=2 cc=3 print(aa) print(bb) print(cc)
上記の場合は、関数内で変数を定義しているので、例外(エラー)が
発生してしまいますね。
def BC(): aa=1 bb=2 cc=3 print(aa) print(bb) print(cc) BC()
上記のように、関数内で変数の定義と使用のコードを書くと、
問題なく実行されます。
しかし、上記のように関数内で定義した変数に、他の関数など、
関数外からアクセスすると例外が発生します。
グローバル変数には、プログラムのどこからでもアクセス出来ますが、
ローカルスコープの中から、グローバル変数に書き込むには、
[global]キーワードを使って、明示的に変数を指定する必要があります。
ローカル変数を定義する際に、グローバル変数の値を誤って変更しないように
する為です。
関数内からグローバル変数に書き込む例。
aa=50 def ac(): global aa aa+=1 print(aa) ac()
関数acを定義。
この関数はグローバル変数”aa”に、1をプラスして表示する。
ということですね。
次は[例外処理]についてですが、飲みたくなってきたので、
また、明日(たぶん)書きます。
では、では。
by geese.(ギース)
↓おやじ、飲み過ぎるなよ!!
にほんブログ村
私の教科書は
|
コメント