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