0
点赞
收藏
分享

微信扫一扫

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

野见 2022-02-17 阅读 57


闭包定义:


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


简单说就是:


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


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

通过闭包方式

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

通过面向对象方式

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



举报

相关推荐

0 条评论