如何改进代码并减少代码数量?

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)

Chu*_*ima 8

减少重复的一个选择是

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参数,您可以传递minmax函数并获得想要的结果.下面是一个如何将函数作为参数传递的示例:如何在Python中将方法作为参数传递