Python与返回变量的混淆

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

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),由您决定将该结果分配给可能会或可能不会被称为相同的变量.

点赞