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
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
这个是闭包效果
tag()返回一个子函数inner()
调用b_tag('Monty Python')就是调用inner()
def inner(str)子函数在def tag(tg)内定义,就可以访问到tag闭包内部的 tg 和 tg2变量