3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【python】変数あれこれ

Last updated at Posted at 2014-01-20

Pythonでいろいろ試してみた。
今まで静的な型付けの言語しか使ったことがなかったので、
最初は結構戸惑ったけど、ちょっとしたツールレベルのものなら書けるようになってきたと思う・・・。

あと、変数のスコープに苦戦。
他のグローバル変数、クラス変数、インスタンス変数の違いとか。

test_1.py
#!/usr/bin/env python
# coding:UTF-8

# グローバル変数
global_var = "global"

class Test1(object):
    # クラス変数
    class_var = "class"

    def __init__(self):
        # インスタンス変数
        self.instance_var = "instance"

グローバル変数はグローバルと言いつつモジュール(ファイル?)内で扱う変数
呼び出しは変数名のみでOKだけど、中身を変更するときは関数内で下のような宣言が必要

test_1.py
    def global_var_test(self):
        # グローバル宣言
        global gloval_var
        # その後中身を変更できる
        global_var = "change"

ちなみに、他モジュールから呼び出す方法が分からない・・・。
まあ、他モジュールから呼び出すようなものじゃない気もするけど。

クラス変数は、下記のように呼び出すといいと思う。

test_1.py
    def get_class_var(self):
        return Test1.class_var

self.class_varとすると、呼び出すときはクラス変数として呼び出されるが、
代入したらインスタンス変数の初期化となる。
(一回インスタンス変数としたら、次から呼び出すときもインスタンス変数が呼ばれる)

なので、インスタンス名.変数名の形式はインスタンス変数のみに固定したほうが、後の自分のためかな。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?