假设我们有这个父类:
class Parent:
def __init__(self):
pass
这两个孩子:
class Child1(Parent):
def __init__(self, 1stparam):
pass
class Child2(Parent):
def __init__(self, 1stparam, 2ndparam):
pass
我想要一个类Parent
的方法来检查传递的参数是否为负数。例如:
class Parent:
def __init__(self):
pass
def check_data( allparameters ):
if allparameters <0:
return false
我希望通过继承此方法为所有孩子check_data
,例如:
mychild1 child1(-1)
mychild2 child2(1, -1)
[mychild1.check_data(), mychild2.check_data()]
当然应该返回[False, False]
。
答案 0 :(得分:1)
您需要*args
的功能。示例示例:
def check_negative(*args):
for item in args:
if item < 0:
return False
else:
return True
示例运行:
>>> check_negative(1)
True
>>> check_negative(-1)
False
>>> check_negative(1, 1)
True
>>> check_negative(1, -1)
False
>>> check_negative(-1, -1)
False
有关详细信息,请参阅:What do *args and **kwargs mean?
答案 1 :(得分:1)
你可以这样做:
class Parent(object):
def __init__(self):
self.data = []
def check_data(self):
return all(map(lambda arg: arg >= 0, self.data))
class Child1(Parent):
def __init__(self, param_1):
self.data = [param_1]
class Child2(Parent):
def __init__(self, param_1, param_2):
self.data = [param_1, param_2]
print(Child1(1).check_data()) # True
print(Child1(-1).check_data()) # False
print(Child2(1, 1).check_data()) # True
print(Child2(1, -1).check_data()) # False
print(Child2(-1, 1).check_data()) # False
print(Child2(-1, -1).check_data()) # False