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

Python 如何在另一个函数中使用来自一个函数的数据,python,function,Python,Function,我有一个关于在另一个函数中使用函数数据的问题。 当我尝试以下方法时: 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(

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

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

我看不出你的代码有任何问题,你会得到
6
,因为你正在调用
input
,但是如果你调用
计算器得出这个结果:

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

In [3]: calculator(6)
36

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

您从不调用
计算器
函数。因此,为了在
计算器
中使用
输入
的结果,您需要返回结果,然后将其传递到
计算器
函数中

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
,因为这会影响内置函数。

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

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

我们已经创建了一个复合函数,现在您不必使用嵌套函数。如果有多个函数相互馈送,这通常很有用。它使您的代码更清晰,更容易理解。

您没有调用
计算器