Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのクラス__init__()関数の内外の変数を説明します。


クラス変数とインスタンス変数

Pythonのクラス__init__関数の外側のすべての変数はクラス変数であり、同じ内部の変数はインスタンス変数です。クラス変数とインスタンス変数の違いは、以下のコードを調べることでよりよく理解できます

class MyClass:
    stat_elem = 456
    def __init__(self):
        self.object_elem = 789
c1 = MyClass()
c2 = MyClass()
# Initial values of both elements
>>> print c1.stat_elem, c1.object_elem
456 789
>>> print c2.stat_elem, c2.object_elem
456 789
# Let's try changing the static element
MyClass.static_elem = 888
>>> print c1.stat_elem, c1.object_elem
888 789
>>> print c2.stat_elem, c2.object_elem
888 789
# Now, let's try changing the object element
c1.object_elem = 777
>>> print c1.stat_elem, c1.object_elem
888 777
>>> print c2.stat_elem, c2.object_elem
888 789

  1. Pythonの名前空間と変数のスコープを説明します。

    名前空間は、スコープを実装する方法です。 Pythonでは、各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。それを「評価コンテキスト」と考えてください。関数などの実行が終了すると、名前空間は削除されます。変数は削除されます。さらに、名前がローカル名前空間にない場合に使用されるグローバル名前空間があります。 各変数名はローカル名前空間(関数の本体、モジュールなど)でチェックされ、次にグローバル名前空間でチェックされます。 変数は通

  2. Pythonのグローバル変数とローカル変数の違いは何ですか?

    グローバル変数は、グローバルにアクセスできる変数です。ローカル変数は、単一の関数定義で使用される一時変数など、現在のスコープにのみアクセスできる変数です。 例 指定されたコード内 q = "I love coffee" # global variable def f():     p = "Me Tarzan, You Jane." # local variable     print p  f() print q 出力 出力は次のとおりです Me Tarzan, You Jane. I love cof