工厂功能建议/解释

时间:2016-02-13 21:48:29

标签: python function math

我已经开始关于熊选项的这个问题但是我不确定如何继续工厂功能部分:

a)熊市期权有收益 see image

我必须编写一个返回payback值的python函数。

def bear(S,K):
    if S <= K:
        value = K
    elif K < S and S < 2*K:
        value = 2*K - S
    else:
        value = 0
    return value

下一部分...... b)“还写一个工厂函数,它返回一个变量的熊期权支付函数,K固定。”

我找不到工厂功能的简单解释,我刚刚开始编码,我的笔记还没有提到工厂功能。任何链接到网页,提示或解释都将非常感谢!

1 个答案:

答案 0 :(得分:1)

他们要你做的是编写一个返回另一个函数的函数,该函数可用于计算固定值K的bear(S, K)

def bear_for_k(K):
    return lambda S: bear(S, K)

演示:

>>> bear(21, 17)
13
>>> bear_for_k17 = bear_for_k(17)
>>> bear_for_k17(21)
13
>>> bear(112, 81)
50
>>> bear_for_k81 = bear_for_k(81)
>>> bear_for_k81(112)
50

编辑以回应评论:

尝试以下文件:

def bear(S,K):
    if S <= K:
        value = K
    elif K < S and S < 2*K:
        value = 2*K - S
    else:
        value = 0
    return value

def bear_for_k(K):
    return lambda S: bear(S, K)

#test:
print(bear_for_k(17)(21))

这个将在Python2和Python3中打印13,没有错误。