【李刚-21天通关Python-19】之 变量作用域

【李刚-21天通关Python-19】之 变量作用域

一、变量作用域

  • 根据定义变量的位置,变量的作用域有两种:
  • 局部变量:在函数中定义的变量包括参数
  • 全局变量:在函数外面、全局范围内定义的变量
# 全局变量
a = 35

def info1 ():
    # 局部变量
    b = 'python'
    print(b)  # python
    print(a)  # 35

def info2 ():
    # 局部变量
    c = 'java'
    print(b)  # 错误,局部变量无法访问
    print(a)  # 35

二、获取变量字典

  • globals() :该函数返回全局范围内所有变量组成的变量字典
  • locals() :该函数返回当前局部范围内所有变量组成的变量字典
  • vars(object) :获取指定对象的范围内所有变量组成的变量字典,如果不传入object参数,vars()和locals()的作用完全相同

三、变量遮蔽

  • 全局变量默认可以在所有函数内访问
  • 如果在函数中定义了与全局变量同名的变量,此时就会发生局部变量遮蔽(hide)全局变量的情形
name = 'python'
def info ():
    # 依然访问全局变量name
    pirnt(global()['name'])  
    # 在函数内对变量赋值,即定义新的name变量
    name = 'java'
    print(name)  

info()
# python
# java
print(name)  # python
name = 'python'
def info ():
    # 声明name始终使用全局变量
    global name
    pirnt(name)  
    # 对全局变量name重新赋值
    name = 'java'
    print(name)  

info()
# python
# java
print(name)  # java

猜你喜欢

转载自blog.csdn.net/weixin_43796325/article/details/98613203