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