如何在另一个函数中使用来自一个函数的数据

2024-06-28 19:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于在另一个函数中使用来自函数的数据的问题。 当我尝试以下操作时:

import pandas as pd
def input(param1, param2, param3 = 4):

    df = (param1 + param2 + param3)
    pd.options.display.float_format = '{:,.0f}'.format

    return df

def calculator(df):
    df2 = df * df
    print(df2)

    return

我得到以下结果:

>>> input(2,2,2)
6

为什么它打印出6而不是36,我如何编写它以便它使用df来计算df2?你知道吗


Tags: 数据函数importformatpandasdfinputreturn
3条回答

我在代码中没有看到任何问题,您得到6,因为您正在调用input,但是如果您调用calculator,结果是:

In [2]: input(2,2,2)
Out[2]: 6

In [3]: calculator(6)
36

还有另一种方法来实现这一点,调用函数式编程中的功能:

from toolz import compose

def my_input(param1, param2, param3 = 4):
    df = (param1 + param2 + param3)
    return df

def calculator(df):
    df2 = df * df
    return df2

comp_calc = compose(calculator, my_input)

comp_calc(2, 2, 2)  # 36

我们已经创建了一个复合函数,现在您不必使用嵌套函数。如果您有多个函数相互馈送,这通常很有用。它使您的代码更干净,更容易遵循。你知道吗

input()的返回值是对传递给它的参数求和,即2 + 2 + 2 = 6。你知道吗

您从不调用calculator函数。因此,为了在calculator中使用input的结果,您需要返回结果,然后将其传递到calculator函数中。你知道吗

def input(param1, param2, param3 = 4):

    df = (param1 + param2 + param3)

    return df

def calculator(df):
    df2 = df * df
    print(df2)

outer_df = input(2,2,2)
calculator(outer_df)
# 36

注意:我建议不要调用自己编写的函数input,因为这会影响内置的^{}函数。你知道吗

相关问题 更多 >