我试图在Python中运行模拟。为了这个工作,我需要定义一些参数并从这些参数中派生出一些参数。然后使用这些函数调用几个函数,这些函数作用于这些参数并返回一定的结果。目前我的代码看起来是这样的Python函数的负载参数和返回值
common(ai, bi, ..., hi):
# calculations
return ao, bo, ..., fo
func1(ai, bi, ..., xi):
ao, bo, ..., fo = common(ai, bi, ..., hi)
# calculations specific to func1
return y
func1(ai, bi, ..., xi):
ao, bo, ..., fo = common(ai, bi, ..., hi)
# calculations specific to func2
return z
ai = 0
bi = 1
...
xi = 2
print(func1(ai, bi, ..., xi))
print(func2(ai, bi, ..., xi))
,我略参数列表等与...
和计算在# calculations
部分来进行。
我宁愿用func1(di=2)
调用函数和对所有其他的默认值。这将意味着使用命名参数,在这种情况下,我必须指定默认值两次(在func1
和func2
)。我不认为**kwargs
会在这里工作,因为这需要明确地传递默认值。
我一直在玩弄传入一个字典的功能和传递之前设定的非标准参数的妥协。这使得函数调用很难理解,所以我觉得应该有一个更简单的方法来做到这一点。
由于函数只由相对较长的方程,我不想字符添加到它将在字典中存放时,并从那里只是调用它们所需的变量名。这使得阅读方程困难得多。
我的问题是是否有Python方法来解决这个问题。
您是否尝试过使用抽象类? – AreTor