变量的作用域--global

# -*- coding:utf-8 -*-

什么是作用域?就是指一个变量产生作用的范围,在哪一个范围内可以被使用


执行以下代码,会报错

# print(abc)
# NameError: name 'abc' is not defined
# 变量的作用域:全局变量作用域,局部变量作用域
# 全局变量:(顶格写)一般在函数、代码块外部声明的变量,被称为全局变量,作用域范围,是从声明的位置开始往下,一直到文件的末尾都可以使用
b = 10
1.局部变量:一般在函数内部或代码块内部声明的变量,被称为局部变量,这类变量只能在函数\代码块内部使用,超出范围不可用

# 代码块,a重新引用了一次
a=20
if 1==1:
    a=10
print(a)

输出结果:  a=10

2.函数中的局部变量,重新创建了一个c,两个不同的c,第二个C只在函数内部使用,在外部无法使用

c=20
def eat():
    #这个变量c的作用范围是函数内部
    c=10
eat()
print(c)
输出结果:c=20
3. 全局变量如何在函数内部进行赋值操作,情况1

# 全局变量name
# name = '张三'
# def change_name():
#     #局部变量name
#     name = '李四'
# change_name()
# print(name)
输出结果:张三

4.情况2

# name = '张三'
# def change_name():
#     print(name)
# change_name()
输出结果:张三

5.情况3: # s=name
                # print(s)

                  代码中注释掉的这两句和未注释的代码执行的结果一样

global :全局 引用一个全局变量,避免出现一个和全局变量重名的局部变量

name = '张三'
# 默认情况下,如果全局变量的名称和局部变量名称相同,例如都是name,局部变量会将全局变量覆盖掉
def change_name():
    #如果不使用global引入全局变量,是可以获取这个全局变量=值得 例如:
    # s=name
    # print(s)

    #但是不能修改全局变量值,一旦修改,相当于创建了一个和全局变量同名的局部变量
    # name = '李四'

    #global :全局 引用一个全局变量,避免出现一个和全局变量重名的局部变量
    #告诉这个函数,在函数内部使用name变量是一个全局变量
    global name
    name = '李四'
    print(name)

change_name()
print(name)
输出:李四

          李四

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值