4.4 Python3进阶-变量作用域

Posted PortosHan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.4 Python3进阶-变量作用域相关的知识,希望对你有一定的参考价值。

>>返回主目录


源码

# 变量作用域
a_test_1 = 1  # 全局变量


def scope_demo():
    # print(f\'函数内初始a_test_1的值是:{a_test_1}\')
    a_test_1 = 2  # 局部变量
    b_test_1 = 4  # 局部变量
    b_test_1 = a_test_1 + b_test_1  # 修改局部变量的值
    print(f\'函数内a_test_1的值是:{a_test_1}, 函数内b_test_1的值是:{b_test_1}\')


scope_demo()
print(f\'函数外a_test_1的值是:{a_test_1}\')
# print(f\'函数外b_test_1的值是:{b_test_1}\')

源码

# 修改作用域变量:global和nonlocal
# global的使用,例如:
a_test_2 = 10  # 全局变量


def change_scope_demo():
    global a_test_2  # 使用global关键字声明全局变量
    a_test_2 = 2
    print(f\'修改后函数内a_test_2的值是:{a_test_2}\')


change_scope_demo()
print(f\'函数外a_test_2的值是:{a_test_2}\')

# nonlocal的使用(适用嵌套函数内部,无法修改全局变量),例如:
a_test_3 = 100


def outer_fun():
    # global a_test_3  # 如果在外函数内,声明了全局变量,那么使用nonlocal关键字声明内函数变量时,就无法找到外函数内的局部变量,会报错
    a_test_3 = 20

    def inner_fun_1():
        nonlocal a_test_3
        print(f\'在内函数中a_test_3的值是:{a_test_3}\')
        a_test_3 = 10
        print(f\'修改后内函数a_test_3的值是:{a_test_3}\')

    inner_fun_1()  # 调用内部函数
    print(f\'外函数内a_test_3的值是:{a_test_3}\')


outer_fun()
print(f\'函数外a_test_3的值是:{a_test_3}\')

>>返回主目录

以上是关于4.4 Python3进阶-变量作用域的主要内容,如果未能解决你的问题,请参考以下文章