我有一个f
接受参数的函数i
,A
和B
。i
是计数器,A
并且B
是列表或常量。该函数只是添加第 i 个元素,A
如果B
它们是列表。这是我用 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()
函数在两个(但不是全部)输入参数上调用。是否有一种装饰器(可能更 Pythonic)方法来实现我在上面所做的事情?