【独学】python(パイソン)プログラミング⑪

プログラミングイメージ IT・プログラミング
この記事は約3分で読めます。

こんばんは。

前回は、組み込み関数、必須引数とオプション引数の関数を
勉強しましたね。

今回は、変数の[スコープ]についてです。

なんか、理屈っぽくて面白くないと思いますが、
重要ですよ。

 

定義した変数に対して、プログラムの中で読み書きが出来る範囲があります。
この範囲の事をスコープと呼びます。

「変数を読む」とは、スコープ内で、その変数を探す事です。
「変数を書く」とは、変数の値を変更する事です。

 

変数が、プログラム内のどこで定義されるかによって、その変数の
スコープが決まります。

関数やクラス(今後、勉強します)の外で変数を定義すると、
グローバルスコープとなり、プログラム内のどこからでも
読み書きが出来ます。
グローバル変数と呼びます。

逆に、関数やクラスの中で定義された変数は、ローカルスコープとなり、
関数、クラスの中でしか、読み書き出来ません。
ローカル変数と呼びます。

 

 

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.(ギース)

↓おやじ、飲み過ぎるなよ!!
にほんブログ村 オヤジ日記ブログへ
にほんブログ村

にほんブログ村 地域生活(街) 東北ブログ 山形県情報へ
にほんブログ村

にほんブログ村 PC家電ブログ デジモノ・ガジェットへ
にほんブログ村

私の教科書は

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

独学プログラマー Python言語の基本から仕事のやり方まで [ コーリー・アルソフ ]
価格:2420円(税込、送料無料) (2020/9/18時点)

楽天で購入

 

 

コメント

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