python局部变量, 是在函数内部定义的变量, 只能在函数内部使用
全局变量, 是在函数外部定义的变量, 可以在函数外或函数内使用, 是全局的
ps: 其他语言中, 一般不推荐使用全局变量
局部变量
局部变量生命周期, 仅在函数运行时生效, 范围也仅限于该函数, 即
- 函数执行完毕, 局部变量被回收,
- 如果与全局变量重名, 默认使用的是局部变量
def sayHello():
name = "xiaoming"
print(name+",hello")
#如果在函数体外使用name,则会报错
#print(name)
sayHello()
全局变量
全局变量, 默认在当前py函数中有效, 若当作模块被导入, 可以使用模块.变量
全局变量, 应该在被调用前声明, 实际开发中推荐放在顶部
def sayHello():
print(name+",hello")
name = "张三" #定义一个重名的name, 在函数中被调用
sayHello()
全局变量, 默认不允许函数体中修改全局变量的值, 如果要修改, 一般使用global声明( 如果修改了全局变量的引用, 则必须使用global, 如果仅修改值, 可以不需要, 需要理解上一节中变量的可变与不可变 )
num = 10
def demo1():
global num #如果没有这句话, 那么不会修改全局变量num的值
num = 99
print(num)
def demo2():
print(num)
demo1()
demo2()
当未使用global声明时, 函数给全局变量赋值时系统自动生成一个同名局部变量
此外, 全局变量命名时, 推荐使用前缀标记, 比如 gl_num