Dek*_*rer 2 python refactoring pointers coding-style
该代码完全相同,所以我想以简单的方式重构它以减少行数.有一点不同的是最小/最大功能执行.是否可以在python中使用函数指针调用min/max作为指向函数的指针,就像在C中一样?
def calculate_min(a, b, c, d, e, f):
try:
v = a[e][f]
b[d] = v if np.isnan(b[d]) else min(b[d], v) #min()
except KeyError as exc:
logger.error("keyerror")
def calculate_max(a, b, c, d, e, f):
try:
v = a[e][f]
b[d] = v if np.isnan(b[d]) else max(b[d], v) #max()
except KeyError as exc:
logger.error("keyerror")
Run Code Online (Sandbox Code Playgroud)
减少重复的一个选择是
def calculate_value(a, b, c, d, e, f, func=max):
try:
v = a[e][f]
b[d] = v if np.isnan(b[d]) else func(b[d], v) #min() or max()
except KeyError as exc:
logger.error("keyerror")
Run Code Online (Sandbox Code Playgroud)
根据func参数,您可以传递min或max函数并获得想要的结果.下面是一个如何将函数作为参数传递的示例:如何在Python中将方法作为参数传递