#变量的作用域-->程序代码能访问该变量的区域。变量可以被访问的范围。变量发挥作用的范围。
#根据变量的有效范围,可分为
#局部变量
#1,在函数内定义并使用的变量,只在函数内部有效,
# 局部变量使用global声明,这个变量
#就会成全局变量
#全局变量
#函数体外定义的变量,
# 可作用于函数内外
####################################
def fun(a,b):c=a+b#c,就称为局部变量,因为c是在函数体内定义的变量#a,b为函数的形参,作用范围也是函数内部,相当于局部变量print(c)
'''print(a)
print(c)
报错
因为a,c超出了起作用的范围(超出了作用域)'''
##################################
#在函数外定义的变量,在函数内外都可以使用,称为全局变量
name='周周'#name在函数内外都可以使用,称为全局变量
print(name)
def fun1():print(name)
fun1()
#############################################
######################################################
def fun2():global ageage=24print(age)
fun2()
print(age)#局部变量使用global声明,就变成了全局变量,在函数调用完后,可在函数体外使用
##############################################################
#############################################################
'''
如果在函数内存在一个跟,全局变量一摸一样的局部变量
'''
x=880
def myfun():x=520#在函数内部存在一个跟全局变量一样的一个局部变量,都叫xprint(x)#当局部作用域与全局作用域发生冲突的时候,python会使用局部作用域的变量
myfun()#520
print(x)#880
'''
调用myfun输出的是520
输出x输出880
不难发现,在函数中局部变量会覆盖同名的全局变量,
但是只要出了函数,局部变量就失效了,因此打印的就是全局变量的值
'''
x=880
print(id(x))#2426335684912
def myfun():print(id(x))#2426335684912
myfun()#全局变量可以在函数内被访问到
def myfun():x=520print(id(x))#3079448521552
myfun()
###############################################################
#global方法不提倡
x=880
def myfun():global x#声明x是全局变量,在这里面出现的x就是全局变量的那个x,x=520print(x)
myfun()#520
print(x)#520
##########################################################
'''
嵌套函数
'''
def funA():x=520def funB():x=880print('in funB x=',x)funB()#内部函数只能通过外部函数来调用print('in funA x=',x)
'''
内部函数是无法被直接调用的
内部函数只能通过外部函数来调用
'''
'''
以下语句会报错
funB()
'''
funA()#in funB x= 880 in funA x= 520
'''
内部函数可以访问到外部函数的变量,但却无法修改外部函数变量的值,外部函数输出的x还是520
'''
################################################
#############################################
'''
使用nonlocal语句,在内部函数修改外部函数的变量
'''
def funA():x=520def funB():nonlocal xx=880print('in funB x=',x)funB()#内部函数只能通过外部函数来调用print('in funA x=',x)
funA()#in funB x= 880 in funA x= 880
#################################################
#######################################################
'''
LEGB规则:L>E>G>B
L(Local):局部作用域(变量)
E(Enclosed):嵌套函数的外层函数作用域
G(Global):全局作用域
B(Build-In):内置作用域
当局部作用域与全局作用域发生冲突的时候,python
'''
'''
以下代码会报错
str='内置函数str被毁了'
str(520)#将520转为字符串
'''

Python入门--局部变量,全局变量,作用域,LEGB规则相关推荐

  1. python进阶15变量作用域LEGB

    原创博客链接:python进阶15变量作用域LEGB 作用域 "作用域"定义了Python在哪一个层次上查找某个"变量名"对应的对象.接下来的问题就是:&quo ...

  2. python作用域——LEGB规则

    LEGB 规则 Python 使用 LEGB 的顺序来查找一个符号对应的对象 locals -> enclosing function -> globals -> builtins ...

  3. python local global_Python 变量作用域 LEGB (上)—— Local,Global,Builtin

    Python 变量作用域的规则是 LEGB LEGB含义解释: L -- Local(function):函数内的名字空间 E -- Enclosing function locals:外部嵌套函数的 ...

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

    规则命名以及基本介绍 1 name="LHF" # 顶头写的全局都可以调用的就是全局变量,命名规则要求大写全局变量 2 def chang_name(): 3 # global n ...

  5. 局部变量 全局变量 函数的嵌套

    day10笔记: 局部变量: 1. 定义在函数内部的变量称为局部变量(函数的形参也是局部变量) 2. 局部变量只能在函数内部使用 3. 局部变量在函数调用时才能够被创建,在函数调用结束之后会自动销毁 ...

  6. python作用域与LEGB规则

    作用域 什么是命名空间 比如有一个学校,有10个班级,在7班和8班中都有一个叫"小王"的同学,如果在学校的广播中呼叫"小王"时,7班和8班中的这2个人就纳闷了, ...

  7. 全局变量和局部变量命名规则_变量范围和LEGB规则

    全局变量和局部变量命名规则 PYTHON开发人员的提示 (TIPS FOR PYTHON DEVELOPERS) In the beginning, I assume that you know ho ...

  8. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  9. python类中变量作用域_python进阶14变量作用域LEGB

    作用域 "作用域"定义了Python在哪一个层次上查找某个"变量名"对应的对象.接下来的问题就是:"Python在查找'名称-对象'映射时,是按照什么 ...

最新文章

  1. python 播放视频 ftp_利用 Python 实现文件自动备份到 ftp 服务器
  2. 翻译:WebApi 认证--用户认证Oauth解析
  3. 【算法设计与分析】15 分治策略:芯片测试
  4. java 取pdf 文本域_java – 使用iText从pdf文件中提取文本列
  5. PTA18、图的字典表示 (10 分)
  6. matplotlib 直方图_掌握了Matplotlib这两个方法,轻松绘制出漂亮的直方图!
  7. C#中的矩阵转换,应用.net GDI+
  8. 访问控制:protected
  9. ASP与SQL数据库连接及SQL常用命令使用方法
  10. BUG--tomcat更改目录失败
  11. php生成11位不重复数字,php生成8位不重复字符串
  12. 最大流问题(超详细!!!)
  13. matlab读取图片value,matlab读取写入图像数据格式uint8,double
  14. C语言 习题3-1 比较大小 (简单解法)
  15. 每天五分钟玩转K8S(二)
  16. ZZULIoj-1088: 手机短号 (多实例)
  17. Mac下Smb的使用
  18. Linux 六种文件类型
  19. @DateTimeFormat@JsonFormat注解详解
  20. 蓝桥杯javaB决赛历届真题6-10届

热门文章

  1. python从入门到放弃-掌握这个学习方法,让 Python 不再从入门到放弃
  2. python基础30个常用代码-30个Python常用极简代码,拿走就用
  3. python数据分析-python数据统计分析
  4. 学python有前途吗-入门学习Python编程有前途吗?
  5. python官方下载电脑版-Python for windows
  6. 有道智云智能语音服务全面升级 最多可支持44种语言和方言
  7. 前沿 | IBM语音识别已接近人类水平
  8. 模板设计模式_设计模式实用又简单的模板模式
  9. python中唯一的映射类型是什么_Python基础类型之字典(dict)
  10. 超边际分析不能用计算机,一种基于超边际分析的分布式计算资源分配方法-Journalof.PDF...