closure的问题


def define_mark(mark):
    opening_mark = mark
    closing_mark = mark.replace("<", "</")
    
    def embed(text):
        return opening_mark + text + closing_mark

    return embed


bold = define_mark("<b>")
italic = define_mark("<i>")

print(bold(italic("The Heading")))#这里为什么不用italic.embed("The Heading"),直接italic("The Heading")就可以了呢

bold和italic都是内部函数embed的引用,不能通过italic.embed调用,会出错。

调用define_mark时opening_mark ,closing_mark 私有变量,返回的embed函数各自引用opening_mark ,closing_mark对应的内容,然后调用bold,italic(实际调用的embed),然后返回对应的html代码

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632