您当前的位置: 首页 >  彭世瑜 Python

Python编程:通过实例理解闭包

彭世瑜 发布时间:2019-03-20 13:45:55 ,浏览量:1

闭包定义:

在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包

简单说就是:

当某个函数被当成对象返回时,夹带了外部变量,就形成了一个闭包

两种方式实现内容加标签的功能

通过闭包方式
def tag(tag_name):
    def add_tag(content):
        return "{content}".format(tag=tag_name, content=content)

    return add_tag


a_tag = tag("a")
print(a_tag("hello"))  # hello

for cell in a_tag.__closure__:
    print(cell.cell_contents)
    # a

通过面向对象方式
class Tag(object):
    def __init__(self, tag_name):
        self.tag_name = tag_name

    def __call__(self, content):
        return "{content}".format(tag=self.tag_name, content=content)


a_tag = Tag("a")
print(a_tag("hello"))  # hello

for key, value in a_tag.__dict__.items():
    print("{} = {}".format(key, value))
    # tag_name = a
    
关注
打赏
1688896170
查看更多评论

彭世瑜

暂无认证

  • 1浏览

    0关注

    2727博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0565s