因为在第一个代码中,您已经创建了一个局部变量
var并使用了它的值,而在第二个代码中,您正在使用局部变量
var,而没有对其进行定义。
因此,如果要使第二个功能正常工作,则需要声明:-
global var
在使用该功能之前
var。
def func(num): print num var = 1 <-- # You create a local variable if num != 0: func(num-1)
而在此代码中:
def func(num): print num var = var <--- # You are using the local variable on RHS without defining it if num != 0: func(num-1)
更新 :-
但是,按照@Tim的注释,您不应
global在函数内部使用变量。最好在使用变量之前先定义变量,然后在中使用它
localscope。通常,您应该尝试将
limit变量的范围设置为
local,甚至在
local命名空间
limit中将局部变量的范围设置为,因为这样您的代码将更容易理解。
变量范围的增加越多,外部源(不需要使用该源)使用它的机会就越大。



