【发布时间】:2018-08-16 13:44:12
【问题描述】:
我想创建多个具有相似结构的函数。而且一个一个地打出来似乎并不聪明,因为它显然违反了不要重复自己(DRY)的原则。
情况是这样的,我有一个数组function_names = ["func1", "func2", … , "func10"]。此外,我希望在这些函数中使用不同操作的 if、elif 和 else 语句。这些函数在一个类中。目标是简化这个结构
class MainClass:
def func1(self):
if condition_a:
return action1(parameter1)
elif condition_b:
return random_action1(random_parameter1)
else:
print("There is something wrong inside func1")
def func2(self):
if condition_a:
return action2(parameter2)
elif condition_b:
return random_action2(random_parameter2)
else:
print("There is something wrong inside func2")
# Same structure of functions goes on
条件condition_a 和condition_b 是不变的。
【问题讨论】:
-
什么是action1,什么是parameter1?它们在哪里被定义?它们是函数的变量吗?
-
您可以将
action作为另一个参数传递。函数是 Python 中的一等公民,可以作为参数传递