使用相同方法在Class内部的Python类

时间:2014-03-22 18:45:54

标签: python class methods

如果我在一个类中编写一个类,它们都使用相同的方法,即:

class Master:  
  def calculate(self):  
    variable = 5
    return variable
  class Child:
    def calculate(self):
      variable = 5
      return variable

我是否必须在两个类中声明此方法,或者我是否只能在Master中声明它,然后在Child中使用它?

1 个答案:

答案 0 :(得分:4)

将一个类嵌套在另一个类中除了嵌套类成为外部类的属性之外没有其他效果。他们没有其他关系。

换句话说,Child是一个可以作为Master.Child而不仅仅是Child来解决的类。 Master的实例可以解决self.Child,它是对同一个类的引用。这就是关系结束的地方。

如果要在两个类之间共享方法,请使用继承:

class SharedMethods:
    def calculate(self):  
        variable = 5
        return variable

class Master(SharedMethods):
    pass

class Child(SharedMethods):
    pass

此处MasterChild现在都有calculate方法。

由于Python支持多重继承,因此创建这样的mixin类来共享方法相对轻松,并且不排除使用其他类来表示is-a关系。

将包含关系留给实例;提供Master child个属性并将其设置为Child个实例。