私は、i
、A
、B
という引数をとる関数f
を持っています。 i
はカウンタであり、A
とB
はリストまたは定数です。この関数は、リストの場合、i番目の要素をA
とB
に追加するだけです。ここでは、私はあなたがconst_or_list()
関数が2つ(すべてではない)の入力引数の上で呼び出されたことがわかります Python 3での関数多型へのデコレータアプローチ
def const_or_list(i, ls):
if isinstance(ls, list):
return ls[i]
else:
return ls
def f(i, A, B):
_A = const_or_list(i, A)
_B = const_or_list(i, B)
return _A + _B
M = [1, 2, 3]
N = 11
P = [5, 6, 7]
print(f(1, M, N)) # gives 13
print(f(1, M, P)) # gives 8
はPython 3に書かれているものです。私が上でやっていることを達成するためのデコレータ(おそらくもっとPythonic)アプローチがありますか?
あなたが行うことができます
-arguments-be-a-function](http://stackoverflow.com/questions/919680/can-a-variable-number-of-arguments-be-passed-to-function) – Pavan