关于返回变量,我在这里有些不明白。为了简单起见,我写了一个非常基本的东西来总结我遇到的问题:

def apples():
    dingo = 2
    return dingo

def bananas(dingo):
    print(dingo)

def main():
    apples()
    bananas(dingo)

main()

所以我在 'apples' 函数中创建了 'dingo'。我退货。我将它用作“香蕉”中的参数。我在 main 中调用它们,那么为什么我会收到“dingo”未定义的错误?另外,我无法做的事情是将 dingo = apples() 放在香蕉函数中。我无法在香蕉函数中解压它,因为我想分别在 main 中调用它们。有没有办法在不打开包装的情况下解决这个问题?

最佳答案

您会收到该错误,因为您没有将 apples() 的返回值分配给任何东西,尤其是 dingo 范围内名为 main() 的变量。这会起作用:

def apples():
    dingo = 2
    return dingo

def bananas(dingo):
    print(dingo)

def main():
    result = apples()
    bananas(result)

main()

请注意我如何命名变量 result - 它不必与 bananas() 函数的参数命名相同 - 它只需要使用您分配给它的名称传入。
def bananas(dingo) 基本上意味着:创建一个名为 bananas 的函数,它只接受一个参数。在 bananas() 中,将该参数称为 dingo

因此,在您调用 bananas() 的范围内调用该参数的任何内容都无关紧要。

苹果也是如此:您创建一个变量 dingo ,为其分配值 2 并返回它 - 实际返回的只是值( 2 ),您可以将该结果分配给可能会或可能不会被称为相同的变量。

关于Python 与返回变量的混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21661900/

10-13 08:31