闭包在函数式编程中的作用

十二、闭包在函数式编程中的一个作用

 

 

#用于用户管理的函数

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声明

局部变量:函数内部声明的变量

 

'''

你可能感兴趣的:(闭包在函数式编程中的作用)