スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Python:グローバル変数 -Global Variables-

Tell the readers who do not read Japanese
Important thing is translated in English that is colored green.
I'm not good at English,so I apologize you if you struggle to read my page.
Summary:
This page is written about global value on Python.
You have to declare a 'global' to use global variables in Python.
I show some example ,and in last describe how to use global variables in class.

 こんばんは。
ここしばらくロボットではなくPythonの話ばかりですね。
でもブログとかに書いておかないと忘れちゃうのでご勘弁を。

では今日はPythonでのglobal変数の扱いです。
C言語のようにアクセスするとハマるので確実に一回は検索することでしょう。
そして、検索しても見つからなかったクラス内のグローバル変数の使い方について書きます。
(たぶんちょっと考えればわかるからあえて書いてないのかもしれませんが・・・)

それでは早速一番基本的な使い方を示します。
関数内でglobal宣言することで、グローバル変数を使用できます。
I show how to use simple global variables.
You can use a global variables by declaring a 'global' in the function

>>> def gl_test1():
        global g1
        print g1

>>> gl_test1()
0


次に、グローバル変数の値を変更してみます。
値が保存され、呼び出しのたびに加算されているのがわかります。
Next I try to change the value of a global variables.
You can recognize that saved the value adding one to every call.

>>> g2 = 0

>>> def gl_test2():
        global g2
        g2 += 1
        print g2

>>> for i in range(10):
        gl_test2()

1
2
3
4
5
6
7
8
9
10


最後に、クラスからグローバル変数を使う例を示します。
このように'self'を付けないとクラス内でグローバル変数にアクセス出来ません。
またグローバル変数を使うときは、安全性を考えてメソッドを使って値のやり取りをするのがお行儀の良いプログラムらしいです。
なので一番最後のように直接アクセスするような使い方はやめましょう。
Last, I show example of using global variables at Class.
You can access a global variables from the class by putting 'self' as an example.
I recommend that you access to the global variables via the method.


>>> class GlTest(object):
        g = 0
   
        def get(self):
                global g
                return self.g
        
        def add(self, x):
                global g
                self.g += x

>>> gc = GlTest()
>>> gc.get()
0
>>> gc.add(100)
>>> gc.get()
100
>>> gc.g
100


地味にこのselfをつけるのがわからず少し悩んだので書いておきました。

ちなみに今回から記事の一部を英語化しました。
これはアクセス解析したら外国の人もいるということがわかったのと、英語の勉強です。
英語間違ったり、不自然だったりしたら教えてください。
それでは今回は以上です。
Thanks you for read my page.

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

月別アーカイブ
カテゴリ
FC2カウンター
最新コメント
リンク
最新トラックバック
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。