如何在Python自己的类中保存类的实例作为Python中的类变量?

Ste*_*uso 3 python python-3.x

我正在尝试定义一个具有自身实例作为类变量的类,因此我可以在整个地方引用它的公共实例.

我怎样才能得到这样的东西?

class Point():
  ORIGIN = Point()

  def __init__(self, x=0, y=0):
    self.x = x
    self.y = y

p0 = Point.ORIGIN
p1 = Point(3,4)

distance = (p1.x*p1.x + p1.y*p1.y) ** .5
print(distance)
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 6

您可以在创建类添加class属性:

class Point():
  def __init__(self, x=0, y=0):
    self.x = x
    self.y = y

Point.ORIGIN = Point()
Run Code Online (Sandbox Code Playgroud)

你也可以让它工作,以便通过描述符懒惰地创建原点,或者你可以使用元类做一些时髦的东西 - 但这似乎不值得你花时间.