【李刚-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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值