Python支持函数嵌套,函数嵌套指的是在当前函数内再创建另外一个函数。
函数在进行嵌套之后,需要注意4点,一是内层函数可以访问外层函数中的所有变量,但不能修改外层函数中该变量的值;二是外层函数可以访问内层函数中的全局变量,但不能修改内层函数中该变量的值;三是外层函数不能访问内层函数的局部变量;四是不能在外层函数之外直接访问内层函数。示例代码如下:
# 资源包\Code\chapter9\9.7\0929.py
name = 'Python全栈开发-基础入门'
def myFunc():
global teach
teach = 'Python'
age = 35
def otherMyFunc():
global other_name
other_name = 'Python全栈开发-高阶编程'
other_age = 66
# 内层函数可以访问外层函数中所有的变量
print(f'访问外层变量age:{age}和teach:{teach}')
# 报错,内层函数不可以修改外层函数中变量的值
age += 10
print(age)
otherMyFunc()
# 外层函数可以访问内层函数中的全局变量
print(f'访问内层变量other_name:{other_name}')
# 报错,外层函数不可以修改内层函数中的全局变量
other_name += 'Python全栈开发-数据分析'
print(f'访问内层变量other_name:{other_name}')
# 报错,外层函数不可以访问内层函数中的局部变量
print(f'访问内层变量other_age:{other_age}')
return None
myFunc()
# 报错,在外层函数之外,不能直接访问内层函数
otherMyFunc()