十二、闭包在函数式编程中的一个作用
#用于用户管理的函数
def user():
#用户名(对于user函数这是局部变量,对于modi函数而言只是一个外部变量)
username = '匿名用户'
#密码
password = ''
#添加用户操作
def add():
print('这是一个添加用户的函数')
#修改用户
def modi():
#通知modi函数username不是当前函数的局部变量,也不是全局变量
nonlocal username
#修改用户名
username = '史珍香'
print('这是一个修改用户的函数')
#删除用户
def drop():
print('这是一个删除用户的函数')
#查看用户
def get():
#获取用户名
print(username)
print('这是一个查询用户的操作')
#使用闭包将所有用户管理的函数返回到函数之外
def manage():
return (add,modi,drop,get)
#返回值
return manage
#调用函数 -> 得到一个包含所有操作的函数
func = user()
print(func)
#调用管理函数
methods = func()
#接收管理函数中的操作
useradd = methods[0]
usermodi = methods[1]
userdrop = methods[2]
userget = methods[3]
#操作用户函数
#修改用户名
usermodi()
#获取用户名
userget()
'''
全局变量:在函数外部声明的声明,而且必须使用global声明
局部变量:函数内部声明的变量
'''