欢迎访问郭晓龙个人博客
你的位置:首页  > Python  > python局部变量和全局变量

python局部变量和全局变量

什么是局部变量

def local_var():
    local_var_num = 100
    print("局部变量值:{}".format(local_var_num))
    local_var_num = 200
    print("局部变量修改后的值:{}".format(local_var_num))

def local_var2():
    local_var_num = 300
    print("方法2局部变量值:{}".format(local_var_num))

local_var()
local_var2()

小总结

  • 局部变量,就是在函数内部定义的变量
  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用

什么是全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量

# 定义全局变量
global_var_num = 1000
def local_var():
    local_var_num = 100
    print("局部变量值:{}".format(local_var_num))
    local_var_num = 200
    print("局部变量修改后的值:{}".format(local_var_num))
    print("全局变量值:{}".format(global_var_num))

def local_var2():
    local_var_num = 300
    print("方法2局部变量值:{}".format(local_var_num))
    print("方法2全局变量值:{}".format(global_var_num))

local_var()
local_var2()
# 修改全局变量值
global_var_num = 800
# 重新调用函数看变量值
local_var()
local_var2()

全局变量与局部变量名字相同的问题

'''
全局变量与局部变量重名问题
'''
# 定义全局变量
same_var_num = 1000
def local_var():
    same_var_num = 100
    print("变量值:{}".format(same_var_num))
    # 修改变量值
    same_var_num = 200
    print("修改后变量值:{}".format(same_var_num))

def local_var2():
    print("方法2变量值:{}".format(same_var_num))

local_var()
local_var2()

函数中如何修改全局变量

'''
函数中修改全局变量的方式
'''

# 定义全局变量
same_var_num = 1000
def local_var():
    global same_var_num
    print("修改全局变量前的值:{}".format(same_var_num))
    same_var_num = 500
    print("修改全局变量后的值:{}".format(same_var_num))

def local_var2():
    print("方法2变量值:{}".format(same_var_num))

local_var()
local_var2()

总结1:

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇

可变类型的全局变量

  • 在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
  • 对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。
文章标题: python局部变量和全局变量
文章地址: http://www.guoxiaolong.cn/article-2-41
文章标签: python入门教程
Top