我创建了一个类,构造函数中的每个(仅关键字)参数对应于特定的类方法。我还定义了另一种按顺序执行这些类方法的方法。我希望此方法按照在构造函数中给出相应参数的顺序执行其他方法,但我不确定如何执行此操作。
我的实际代码相当复杂,所以我在下面提供了一个简单但等效的示例来说明我的意思。
我创建了类并定义了如下方法:
class thing:
def __init__(self,
add_value=1,
subtract_value=2,
divide_value=3):
self.add_no=add_value
self.subtract_no=subtract_value
self.divide_no=divide_value
self.function_list = [
self.do_addition,
self.do_subtraction,
self.do_division]
def do_addition(self, input_no):
return input_no + self.add_no
def do_subtraction(self, input_no):
return input_no - self.subtract_no
def do_division(self, input_no):
return input_no / self.divide_no
def do_thing(self, input_no):
for i in range(len(self.function_list)):
function = self.function_list[i]
output_no = function(input_no)
input_no = output_no
return output_no
如果我然后初始化一个类对象:
my_thing = thing(add_value=3,
subtract_value=1,
divide_value=2)
并运行该do_thing
方法:
my_thing.do_thing(10)
6.0
正如预期的那样,输出是。当然,输出将取决于do_addition
、do_subtraction
和do_division
方法的执行顺序。我想知道是否有一种方法可以按照构造函数中给出的顺序执行这些方法,以便返回以下内容7.5
(而不是6.0
):
my_thing_2 = thing(subtract_value=1,
divide_value=2,
add_value=3)
我对 Python 中的课程很陌生,所以我将不胜感激!提前致谢。