def tag(tg): tg2 = tg tg2 = tg[0] + '/' + tg[1:] def inner(str): return tg + str + tg2 return inner b_tag = tag('<b>') print(b_tag('Monty Python'))
outputs
Monty Python为什么这里“Monty Python"会自动代入str这个parameter
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
支付金额 15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意 《付费问题酬金结算规则》
这个是闭包效果tag()返回一个子函数inner()
调用b_tag('Monty Python')就是调用inner()
def inner(str)子函数在def tag(tg)内定义,就可以访问到tag闭包内部的 tg 和 tg2变量
'Monty Python'为什么不会当作tag(tg)里的tg参数
b_tag = tag('<b>')是调用tag(tg)函数,tg参数传递的是'<b>'tag()返回一个子函数 inner 赋值给b_tagb_tag就等于inner函数调用b_tag('Monty Python')就是调用def inner(str):函数,不是tag(tg)函数'Monty Python'参数自然是传递给 inner函数的str了
b_tag = tag('<b>')
'<b>'
b_tag就是inner函数吧,不是inner函数的值吧?
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!