def func():
#声明变量
n=100#局部变量
list1=[1,2,3,4]#局部变量
print(n,list1)
#声明内部函数
def inner_func():
nonlocal n
#对list1里面元素进行加5
for index,i in enumerate(list1):
list1[index]=i+5
list1.sort()
#修改n变量
n+=101
print(list1)
#调用内部函数
inner_func()
print(list1)
print(n)
总结:内部函数的特点:
1.可以访问外部函数的变量
2.内部函数可以修改外部函数的可以类型的变量
3.内部函数修改全局的不可变量时需要在内部函数中声明global 变量名,内部函数修改外面函数的不可变量时,需要在内部声明nonlocal 变量名。
4.locals()查看本地变量有哪些,以字典形式输出
globals()查看全局变量有哪些,同上。
加载函数到内存这句话记住!