的Python:与局部/全局变量引用/分配内循环

问题描述:

我有以下环结构,也是问题,即它不可能增加内部的这个代码由于UnboundLocalError一个变量:的Python:与局部/全局变量引用/分配内循环

while True: 
    def function_1(): 
     def function_2(): 
      x += 1 
      print(x) 
     function_2() 
    function_1() 

我的解决办法,现在这一个:

x = 0 
while True: 
    def function_1(): 
     def function_2(): 
      global x 
      x += 1 
      print(x) 
     function_2() 
    function_1() 

有没有global另一种解决方案?

使用可变值。

x = [] 
x.append(0) 
while True: 
    def function_1(): 
     def function_2(): 
      x[0]= x[0]+1 
      print x[0] 
     function_2() 
    function_1() 
+0

谢谢!我会测试哪一个更快。 – saitam

将x传递并返回到所有函数。

x = 0 
while True: 
    def function_1(x1): 
     def function_2(x2): 
      x2 += 1 
      print(x2) 
      return x2 
     return function_2(x1) 
    x = function_1(x)