Python入门11——内部函数和nonlocal关键字

Talia ·
更新时间:2024-11-15
· 528 次阅读

内部函数顾名思义就是在函数内部定义函数,因此,也就有了外部函数这个名词。内部函数可以直接修改和使用外部函数的可变类型变量;对于不可变类型变量(数字、字符串、元组等)可直接使用,但是若要修改则需要使用关键字 nonlocal 关键字声明。 1、内部函数的权限问题

(1)内部函数可以访问外部函数的变量;

(2)可以修改外部函数的可变类型变量;

(3)在内部函数中,修改全局变量需要加 global关键字声明;修改外部函数的不可变类型变量需要加 nonlocal 关键字声明;

num01 = 1 def fun01(): num02 = 2 s = 'apple' lst = {1, 2, 3} def fun02(): nonlocal num02 global num01 num01 += 1 # 修改全局变量 s = 'melon' # 此时变量s对于函数fun02()来说是局部变量 num02 += 3 # 修改不可变类型变量 lst.add(4) # 修改可变类型变量 print(s) # s = 'melon' print(num01) # num01 = 2 print(num02) # num02 = 5 print(lst) # lst = {1,2,3,4} print(s) # 外部函数:s = 'apple' fun02() 2、nonlocal关键字

该关键字的作用就是,在内部函数中声明外部函数不可变类型的变量,使得在内部函数中可以修改该变量,在上面的例子中已经能够明确的说明。

另外,在这里介绍两个函数:

locals() : 字典,查看当前函数中的局部变量;

globals() : 字典,查看全局变量,包含系统内容;

  琛cc 原创文章 29获赞 26访问量 2402 关注 私信 展开阅读全文
作者:琛cc



Python入门 nonlocal 函数 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号