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进阶-变量作用域的主要内容,如果未能解决你的问题,请参考以下文章

理解js中的自由变量以及作用域的进阶

JavaScript 进阶变量作用域

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

函数进阶

Java编程进阶常量变量及作用域