具有附加条件的儿童功能

num*_*ric 1 python

说我有以下内容:

class Parent(object):
    [...]
    def func(self, list):
        for item in list:
            if condition1:
                do something

class Child(Parent):
    [...]
    def func(self, list):
        for item in list:
            if condition1 and condition2:
                do something
Run Code Online (Sandbox Code Playgroud)

condition2添加到func而不必重新复制整个函数的优雅方法是什么?请注意,我实际上在嵌套的'ifs'中有两个附加条件.

glg*_*lgl 6

如果您有权访问Parent,您可以这样做

class Parent(object):
    [...]
    def _condition(self, whatever):
        return condition1
    def func(self, list):
        for item in list:
            if self._condition(...):
                do something

class Child(Parent):
    [...]
    def _condition(self, whatever):
        return condition1 and condition2
Run Code Online (Sandbox Code Playgroud)