编写异常函数

时间:2017-03-10 14:22:13

标签: function exception higher-order-functions

我目前正在学习在线学习平台,我的代码必须通过测试用例(包含在下面) 这是一个问题:

编写一个高阶函数exception_function,它将返回一个带异常的函数。 exception_function应该接受函数f(x),整数输入和整数输出,并返回另一个函数g(x)。 g(x)的输出应该与f(x)相同,除了当x与整数输入相同时,输出将被返回。

例如,假设我们有一个函数sqrt,它返回参数的平方根。使用new_sqrt = exception_function(sqrt,7,2)我们获得new_sqrt,其行为与sqrt类似,但new_sqrt(7)除外,其中将返回值2。

以下是答案模板

    from math import *

def exception_function(f, rejected_input, new_output):
    """Your code here"""
    pass

#################
#DO NOT REMOVE#
#################
new_sqrt = exception_function(sqrt, 7, 2)

测试用例:

new_sqrt(9) - 预期答案3

new_sqrt(7) - 预期答案2

这是我不确定的。

  1. 如何控制f将返回而不改变f本身?
  2. 非常感谢你的时间。

1 个答案:

答案 0 :(得分:0)

管理解决它!

def exception_function(f, rejected_input, new_output):
    def inner_function(x):
        if x==rejected_input:
            return new_output
        else:
            return f(x)
    return inner_function

new_sqrt = exception_function(sqrt, 7, 2)