编程语言
首页 > 编程语言> > Python3基础-全局变量和局部变量

Python3基础-全局变量和局部变量

作者:互联网

全局变量和局部变量

局部变量:在子程序中定义的变量称为局部变量

全局变量:在程序的一开始定义的变量称为全局变量。

不同之处:全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。

#当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
test_name='susu'

def test():
    test_name='sugh'
    print("猜猜我是谁-%s"%test_name)  #输出的是 猜猜我是谁-sugh

test()
print("我是%s"%test_name) #输出的是  我是susu
#全局变量是不可变的数据类型,函数不可以直接对全局变量内部直接进行修改;修改则会直接报错
test_name='susu'

def test():
    print("猜猜我是谁-%s"%test_name)  #输出的是 猜猜我是谁-susu --》可读取全部变量
    #test_name = 'sugh'  #不可对全局变量进行赋值操作
    #print("修改后的全部变量,%s"%test_name) #报错  UnboundLocalError: local variable 'test_name' referenced before assignment

test()
print("我是%s"%test_name) #输出的是  我是susu

#全局变量是不可变的数据类型,用global进行声明,则可以操作
test_name='susu' #全局变量

def test():
    global test_name   #声明test_name是全局变量  global
    test_name = 'Nosusu' #修改test_name 全局变量的值
    print("猜猜我是谁-%s"%test_name)  #输出的是  猜猜我是谁-Nosusu

test()
print("我是%s"%test_name) #输出的是  我是Nosusu

#全局变量是可变的数据类型,函数可以对全局变量内部直接进行修改
test_namelist=['susu','jack','petter']
def test():
    print("猜猜我是谁-%s"%test_namelist)  #输出 猜猜我是谁-['susu', 'jack', 'petter']
    test_namelist[1] = 'sugh'
    print("修改后的全部变量,%s"%test_namelist) #输出 修改后的全部变量,['susu', 'sugh', 'petter']

test()
print("我是%s"%test_namelist)  #我是['susu', 'sugh', 'petter']
总结:
1、全局变量是不可变的类型,函数优先读取局部变量,能读全局变量,无法对全局变量重新赋值操作
2、全局变量是可变类型,函数可以对全局变量进行操作
3、函数中有global关键字,变量本质就是全局变量,可读取全局变量,也可操作全局变量

 

 

标签:name,局部变量,print,susu,test,全局变量,Python3
来源: https://www.cnblogs.com/sugh/p/11677679.html