Python编程:通过实例理解闭包
【摘要】 闭包定义:
在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包
简单说就是:
当某个函数被当成对象返回时,夹带了外部变量,就形成了一个闭包
两种方式实现内容加标签的功能
通过闭包方式
def tag(tag_name): def add_tag(content): return "<{tag}...
闭包定义:
在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包
简单说就是:
当某个函数被当成对象返回时,夹带了外部变量,就形成了一个闭包
两种方式实现内容加标签的功能
通过闭包方式
def tag(tag_name): def add_tag(content): return "<{tag}>{content}</{tag}>".format(tag=tag_name, content=content) return add_tag
a_tag = tag("a")
print(a_tag("hello")) # <a>hello</a>
for cell in a_tag.__closure__: print(cell.cell_contents) # a
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
通过面向对象方式
class Tag(object): def __init__(self, tag_name): self.tag_name = tag_name def __call__(self, content): return "<{tag}>{content}</{tag}>".format(tag=self.tag_name, content=content)
a_tag = Tag("a")
print(a_tag("hello")) # <a>hello</a>
for key, value in a_tag.__dict__.items(): print("{} = {}".format(key, value)) # tag_name = a
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/88687019
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)