【发布时间】:2017-05-19 03:58:26
【问题描述】:
我有一个函数f 接受参数i、A 和B。 i 是一个计数器,A 和 B 是列表或常量。该函数只是添加A 和B 的第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() 函数在两个(但不是全部)输入参数上被调用。是否有一种装饰器(可能更 Pythonic)方法来实现我在上面所做的事情?
【问题讨论】:
标签: python python-decorators parametric-polymorphism