Pythonを学ぶときの典型的なPointクラスの例を説明すると、私は何らかの理由でクラスのものと同じ型のクラスレベル(静的変数)を持つことができないことに気付きました。例えば。 Javaで同じ作品しばらくPythonで同じ型のクラス変数
class Point:
ORIGIN = Point() # doesn't work
def __init__(self, x=0, y=0):
self.x = x
self.y = y
:
class Point {
public static void main(final String[] args) { }
private static final Point ORIGIN = new Point(0, 0);
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
質問です:Pythonで同じことを達成するためのいずれかの方法があります。今はモジュールレベルの変数に頼っていますが、私はその解決策が好きではありません。また、授業の体ではできない理由がありますか?
"今、私はモジュールレベルの変数に頼っています。モジュールレベルのグローバルは、クラス定義内に隠された奇妙な静的な最終変数をより意味をなさないものにします。よりシンプルなソリューションで何が問題になっていますか? –
@ S.Lott:ORIGINはどのモジュールにも属していない*という理由があります。例えばの場合。私はこのクラスを他のモジュールに移すことにしました.ORIGINが参照される方法は常に同じです。 – sasuke
ORIGINはPointのインスタンスで、Pointと同じモジュールに属します。あなたが1つを動かすと、なぜあなたは他の人を動かさないでしょうか? –