嵌套循环跟踪

时间:2018-10-03 04:42:03

标签: python python-3.x closures nested-loops tracing

我在跟踪这套嵌套循环代码时遇到问题。这些是我的工作。

  • 转到def f1(a):
  • 转到a = f1(1)
  • 成为f1(f1(1))
  • 先离开f1,再解决f1(1)
  • f1(1)返回f2
  • 进入def f2(b),现在是f2(1),所以f2中的参数 现在是1
  • 我迷路了。

      def f1(a):
         def f2(b):
           return a + b
         return f2
    
         a = f1(1)
         b = f1(100)
    
         print (a(2))
         print (b(2))
    

2 个答案:

答案 0 :(得分:2)

我假设您想对代码进行解释。

让我们开始吧

(searchBar:...

这将返回f2定义作为其范围内值为a = f1(1) 的对象。

a = 1

与上面的相同,仅此实例的作用域b = f1(100)

最后,与

a = 100

您正在将值print (a(2)) print (b(2)) 传递给上面保存的两个函数,并对其求值分别为3和102。

答案 1 :(得分:0)

看看这个:

对于Print(a(2))

-> f1(1)(2)

-> f2(2)

-> 1+2

-> 3

对于Print(b(2))

-> f1(100)(2)

-> f2(2)

-> 100 + 2

-> 102