在返回变量时,我有些不明白的地方.为了简单起见,我写了一个非常基本的东西来总结我遇到的问题:
def apples():
dingo = 2
return dingo
def bananas(dingo):
print(dingo)
def main():
apples()
bananas(dingo)
main()
所以我在’apples’函数中创建’dingo’.我回来了.我用它作为’香蕉’的参数.我把它们都称为main,那么为什么我会得到’dingo’未定义的错误?另外,我无法做的事情是在香蕉功能中加入dingo = apples().我无法在香蕉功能中解压缩它,因为我想在主要单独调用它们.有没有办法解决这个问题而不解包?
最佳答案 你得到了这个错误,因为你没有将apples()的返回值赋给任何东西,尤其是在main()范围内没有名为dingo的变量.这可行:
def apples():
dingo = 2
return dingo
def bananas(dingo):
print(dingo)
def main():
result = apples()
bananas(result)
main()
注意我如何命名变量结果 – 它不必与bananas()函数的参数命名相同 – 它只需要用你指定给它的名称传入.
def bananas(dingo)基本上意味着:创建一个名为bananas的函数,它只需要一个参数.在bananas()中,将该参数称为dingo.
因此,无论在调用bananas()的范围内调用该参数都是无关紧要的.
对于苹果也是如此:您创建一个变量dingo,为其赋值2并返回它 – 实际返回的只是值(2),由您决定将该结果分配给可能会或可能不会被称为相同的变量.