Skip to main content
 首页 » 编程设计

python之Python中的任意范围嵌套

2025年05月04日13kevingrace

以下python示例来自here :

def f1(): 
  x = 99 
  def f2(): 
      def f3(): 
          print(x) 
          print('f3') 
      f3() 
  f2() 
f1() 

这是输出:

99 
f3 

为什么输出不是下面的?

99 
f3   # from f1() 
99 
f3   # from f3() 
99 
f3   # from f2() 

请您参考如下方法:

这是因为随着代码的展开,它简化为:

x = 99 
print(x) 
print('f3') 

这是展开的顺序:

def f1(): 
  x = 99 
  def f2(): 
      def f3(): 
          print(x) 
          print('f3') 
      f3() 
  f2() 
f1() 

成为

  x = 99 
  def f2(): 
      def f3(): 
          print(x) 
          print('f3') 
      f3() 
  f2() 

成为

  x = 99 
  def f3(): 
      print(x) 
      print('f3') 
  f3() 

成为

  x = 99 
  print(x) 
  print('f3') 

这就是执行的内容。