首页 > 解决方案 > 有没有办法让继承的方法执行检查,如果检查失败,请返回原始方法?(Python)

问题描述

假设我有一个父类和一个子类,如下所示:

class Parent():
 def __init__(self,value):
     self.value = self.value
 def get_value(self):
     return self.value

class Child(Parent):
 def __init__(self,value):
     super(Child,self).__init__(value)
 def get_value(self):
     if self.value == 10
        print("Yay!")
     else:
        Parent.get_value()

所以像上面一样,我想要一个父类的子类覆盖从父类继承的方法,但我希望它检查特定条件。如果不满足该特定条件(在本例中为 self.value = 10),则只需从父类运行该方法。

编辑:修复了语法错误

标签: pythonclassinheritancemethodsoverriding

解决方案


你可以做这样的事情

class Parent:
    def __init__(self, value):
        self.value = value

    def get_value(self):
     print(f'parrent {self.value}')
     return self.value





class Child(Parent):
 def __init__(self,value):
     super(Child,self).__init__(value)
 def get_value(self):
     if self.value == 10:
        print(f'child {self.value}')
        print("Yay!")
     else:
        super().get_value()




c = Child(10)
c.get_value()

cp = Child(11)
cp.get_value()

输出

child 10
Yay!
parrent 11


推荐阅读