1

f引数iAおよびを受け取る関数がありBます。iはカウンターで、ABはリストまたは定数です。Aこの関数は、 andBがリストの場合、i 番目の要素を追加するだけです。これが私が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

const_or_list()入力引数の 2 つ (すべてではない) で関数が呼び出されていることがわかります。私が上でやっていることを達成するためのデコレータ(おそらくよりPythonic)のアプローチはありますか?

4

2 に答える 2