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

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

 

 

#用于用户管理的函数

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

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

 

'''

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值