unboundlocalerror local variable 'i' referenced before assignment
我在python中是个新手,尝试执行以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def dubleIncrement(): j = j+2 def increment(): i = i+1 dubleIncrement() if __name__ =="__main__": i = 0 j = 0 increment() print i print j |
但得到这个错误:
1 | unboundlocalerror local variable 'i' referenced before assignment |
任何人都知道为什么
在函数内部声明
1 2 3 4 5 6 7 | def dubleIncrement(): global j j = j+2 def increment(): global i i = i+1 |
注意,当你在你的
理想情况下,您应该尽量避免使用全局变量,并尝试将变量作为参数传递给函数(考虑当您决定在某些其他函数中再次使用变量名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def dubleIncrement(x): x = x+2 return x def increment(x): x = x+1 return x if __name__ =="__main__": i = 0 j = 0 i = increment(i) j = dubleIncrement(j) print i print j |