私はJavaからPythonに移行しています。 Javaでは、静的変数は同じクラスの別のオブジェクトによって変更されても、クラスのすべてのオブジェクトに同じ値を返します。私が読んでいるPythonの本では、データメンバは、クラス定義の直接のスコープ内で代入が行われる場合、クラスの名前空間に入力されます。Javaでのように、このコードがクラス変数を使用していないのはなぜですか?
私はIDLE、Pythonのインタプリタを使用して、以下のPythonコードですよ:
class ABC:
OVRLIMIT_FEE=5
>>> a=ABC()
>>> b=ABC()
>>> a.OVRLIMIT_FEE+=1
>>> a.OVRLIMIT_FEE
6
>>> b.OVRLIMIT_FEE
5
しかし、それは、クラスの名前空間を入力した場合、それがAの両方でアクセスされたとき、それは同じ値を返すべきではないとb?
は、Javaを述べていますが、この質問は、それとは全く関係のない – SomeJavaGuy
あなたは、オブジェクトを変更しているされたABCの属性がない属性、 'ABC.OVRLIMIT_FEE + = 1 'あなたが得るでしょうか6両方とも – dnit13
'a.OVRLIMIT_FEE'(' a.OVRLIMIT_FEE + = 1'で行ったように)に割り当てると、 'a'にインスタンス変数を作成しています。クラス変数にアクセスしたい場合は、 'ABC.OVRLIMIT_FEE'を使います。 – khelwood