def html_tag(tag):
def wrap_text(msg):
print(f'{tag} {msg} {tag}')
return wrap_text
html_tag('Hi')
print(html_tag)
check_h1 = html_tag('Hi')
print(check_h1)
控制台退货
<function html_tag at 0x108492b00>
<function html_tag.<locals>.wrap_text at 0x1085b0280>
所以我知道控制台函数的第一行存储在计算机的内存中,但是发生了什么'Hi'
html_tag
函数中的参数。 同样在控制台的第二行中,我想'Hi'
存储为tag
参数的参数,但为什么html_tag('Hi')
没有发生这种情况?
区别在于,一旦你引用了wrap_text函数,而一次引用了html_tag函数。
随着使用
html_tag('Hi')
您确实调用了函数并接收了wrap_text函数,但是您永远不会存储 returend 结果。 如果您更改
html_tag('Hi')
print(html_tag)
自
my_html_tag = html_tag('Hi')
print(my_html_tag)
你会得到预期的结果。
当您只需致电
print(html_tag)
你告诉 Python 打印 html_tag 函数,这不受你之前通过以下方式调用它的影响
html_tag('Hi')