python(变量作用域)

一、什么是作用域?

#什么是作用域?变量能使用的范围
#作用域就是指一个变量产生的作用范围,在哪一个范围内可以被使用
#NameError: name 'abc' is not defined
#变量的作用域:全局变量作用域,局部变量作用域
#全局变量:一般在函数,代码块外部,声明的变量,都被称为全局变量。作用范围是整个.py文件内,都可以使用,都能被解释器识别到。顶格写
#局部变量:一般在函数内部或代码块内部声明的变量,被称为局部变量,这类变量只能在函数\代码块内部使用,超出范围不可用
二、举个小例子

def sum(a,b):
    # 形参a,b也是局部变量,只能在函数内部使用。
    # c: 就是一个局部变量
    c = a + b
    print c
    if c == 30:
        c = c + 100
        print c
sum(10,20)
三、全局变量名和局部变量名相同时,可以有如下操作

# 全局变量名和局部变量名相同
#全局变量如何在函数内部进行赋值操作
name = '张三'
# 默认情况下,如果全局变量名和局部变量名相同都是name,在函数内部是无法识别到函数外部的全局变量的,而会在函数内部声明一个新的局部变量叫name。
def change_name():
    # local(局部的) variable(变量) 'name' referenced(引用) before(在...之前) assignment(声明):因为变量在进行引用时,会采取就近原则,看最近声明的变量在哪。而最近声明的变量是name='李四',所以出现了先引用,后声明的错误。
    # 如果在函数内部,想修改外部的全局变量(可以理解为重新赋一个值),需要使用global
    # 如果不使用global引用全局变量,是可以获取这个全局变量值得 例如:
    # s=name
    # 但是不能够改变全局变量值,一旦修改,相当于创建了一个和全局变量重名的局部变量
    # name='李四'
    # global的作用:声明一个变量是已经声明好的全局变量,直接使用即可,可以避免声明一个和全局变量重名的局部变量。
    # 告诉这个函数,在函数内部使用name变量是一个全局变量
    global name
    # print(name)
    name = '李四'
    print(name)
change_name()
print(name)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值