从函数中的函数调用变量

快速问题。我首先定义了一个函数prc_chgd,它最终给了我一个变量和s,但作为中间步骤,它给了我可变价格。现在,我想编写一个后续函数hdg,它使用相同的输入顺序,使用中间变量价格来计算其他东西。不幸的是,我不知道如何:S


def prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):

    price = xyz

    ans   = price*abc


def hedge(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):

    from prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y) import price

    ans = price*xxxx

关键是这些函数是笔记本分配中的两个单独的练习,我可能必须使用新输入(尽管顺序相同)重新计算前面的函数,并且只为我的计算选择定义的可变价格。


提前感谢一堆!


慕神8447489
浏览 93回答 3
3回答

陪伴而非守候

我不能完全遵循,但我认为你是一些神秘的组合等。xyzp0, ta, ya在这种情况下,您应该将价格计算放入一个单独的函数中,例如def calc_price(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    return xyz # calculated with these inputsdef prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    price = calc_price(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y)    ans = price * abcdef hedge(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    price = calc_price(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y)    ans = price * xxxx如果你想避免你的被计算两次,你也可以做pricedef calc_price(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    return xyz # calculated with these inputsdef prc_chgd(price):    ans = price * abcdef hedge(price):    ans = price * xxxx并将其留给呼叫者呼叫的频率。calc_price()

婷婷同学_

如果需要,可以从函数中返回多个值:def prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    price = xyz    ans   = price*abc    return price, ansdef hedge(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):    price, ans = prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y)    ans = price*xxxx

九州编程

返回多个返回值的函数应该在 python 中产生:def prc_chgd(p0, ta, ya, tb, yb, cb, delta1_y, delta2_y):   price = xyz   yield price   ans   = price*abc   yield ans您可以根据需要生成任意数量的值。然后,您可以循环访问 for 循环中的所有答案:for total in prc_chgd(1,2,3,4,5,6,7,8):   print total首先,它将打印价格,然后是 price*abs。由于这两个函数属于一起,我建议使用一个类。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python