【问题标题】:How self reference class in Python in class member variables (not known syntax)?Python中如何在类成员变量中自引用类(未知语法)?
【发布时间】:2017-11-16 20:50:23
【问题描述】:

几年前我学过 Python,但我不知道如何将 class 引用为 self。

看看我的问题:

class SomeClassReference(object):
  def __init__(self, reference):
    self.reference = reference

class MyClass(object):
  # MyClass is not defined - how to solve it?
  a = SomeClassReference(reference = MyClass)

是否可以在 Python 中进行这样的自引用,我需要使用什么语法来用 class 初始化 class member。我经常使用 Python 但不知道怎么做?

【问题讨论】:

    标签: python-2.7


    【解决方案1】:
    class Point(object):
      ZERO = None
      def __init__(self, x, y):
        self.x = x
        self.y = y
    Point.ZERO = Point(0,0)
    

    不需要类定义中的零,但我正在使用它,因为我的 IDE 无法找到用于代码完成的类变量。

    【讨论】:

      【解决方案2】:

      您可以尝试使用 setter 方法 (setReference):

      class SomeClassReference(object):
          def __init__(self):
              self.reference = None
      
      class MyClass(object):
          def __init__(self):
              self.a = SomeClassReference()
      
          def setReference(self):
              self.a.reference = MyClass
      

      【讨论】:

      • 不是回答。 self.a实例成员而不是类成员MyClass.a 将未定义。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多