我試圖在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