700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > day10 局部变量 全局变量 作用域前奏

day10 局部变量 全局变量 作用域前奏

时间:2022-03-15 23:46:59

相关推荐

day10 局部变量 全局变量 作用域前奏

规则命名以及基本介绍

1 name="LHF"# 顶头写的全局都可以调用的就是全局变量,命名规则要求大写全局变量2 def chang_name():3 # global name # 在函数内定义全局变量,之后函数内调用改变就会全局都改变,如果要用到此命令一定要在函数最前面用,不然会报错4name = "shuai" # 局部变量,值用于子程序所用,其他程序无法调用,命名规则要求全部小写5print("chang_name",name) # 优先取局部变量,局部取不到就取全局,在局部里面有的前提下,无法强制调用全局的6 chang_name()7 print(name) # 全局调用的时候只能调用全局的

内部改变全局变量的情况 global 的使用

函数和内存的交互原理,读取和执行

1 NAME = "yangtuo" 2 defchang_name ():# 强势理解函数被读取到内存后未执行,被调用后才会被执行 3global NAME 4NAME = "tiancai" 5print(NAME) 6 7 print(NAME) # yangtuo 未调用函数时,不会改变 8 9 def chang_name1():10print(NAME)11 12 chang_name1()# yangtuo 仍然未调用13 chang_name() # yangtuo 仍然未调用14 chang_name1()# tiancai 被调用后改变15 print(NAME) # tiancai 被调用后改变,全局再次使用受影响

更改全局变量

1 name = "yangtuo" 2 defyang(): 3name = "yang" 4def tuo(): 5 global name 6 name = "tuo" 7tuo() 8print(name) 9 10 print(name)11 yang()12 print(name)

更改上一级变量

1 name = "yangtuo" 2 defyang(): 3name = "yang" 4def tuo(): 5 nonlocal name 6 name = "tuo" 7tuo() 8print(name) 9 10 print(name)11 yang()12 print(name)

总结:

全局变量最外圈 用全大写命名

局部变量在函数内 用全小写命名

局部变量与全局变量互不干涉。

函数调用不到局部变量会向上一级寻找直到找到最外层的全局变量

global 可以在函数内将全局变量更改

nolocal 可以在函数内对上一级的变量更改

ps : 想试验一下内部一个变量和外部重名的同时再宣告全局更改后,是先调用哪一个结果报错了

1 name = 1232 def change_name():3name = 4564global name5name = 7896return name7 print(name)8 print(change_name())9 print(name)

1 global name2^3 SyntaxError: name 'name' is assigned to before global declaration

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。