|
def func(ok=True):
if ok:
a = random.randint(0,10)
else:
random = 5
一样报错,首先在进入func函数后,不是执行python程序,而是对每个变量进行定义。
import random和random = 5一样都是对random变量赋值,所以函数内赋值的变量会定义为本地变量
而如果你的程序是
def func(ok=True):
if ok:
a = random.randint(0,10)
else:
return random
就是正常的, 因为没有random赋值,random不需要声明为本地变量
而如果在需要给random赋值的函数内调用全局变量需要如下
def func(ok=True):
if ok:
global random
a = random.randint(0,10)
else:
import random
a = random.randint(0,10)
|
|