首页 > 解决方案 > python中的函数返回变量

问题描述

嘿,我需要有关我在 edx 练习课程中找到的以下代码的帮助!

        def foo(x, y = 5):
           def bar(x):
             return x + 1
           return bar(y * 2)
      
        foo(3)

第一步是数字 3 将进入 foo 中的 x 变量,因为 y 已经给出 5。所以 foo(3,5)。第二步是 def bar(3),它应该返回 4,但是为什么这一步会直接返回 bar(y * 2),即 bar(5*2),然后返回 bar(10),然后返回 11。

标签: pythonpython-3.xfunction

解决方案


如果您在理解代码的作用时遇到问题,请将其写得更清楚。您的代码段相当于:

def bar(x):
    ret = x + 1
    return ret

def foo(x, y=5):
    ret = bar(y * 2)
    return ret

foo(3)

如您所见,您传递给的“3”foo()从未使用过。foo()将 y 加倍并加一(通过bar()


推荐阅读