当前位置: Python基础教程 > 05-变量-b > 阅读正文

python局部变量和全局变量

2021.7.4.   463 次   649字

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

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群