gpt4 book ai didi

python - 返回 "self"?它到底做了什么,我们什么时候需要返回 self

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:34 24 4
gpt4 key购买 nike

我遇到了一段类似于下面的代码:

from contextlib import contextmanager, ContextDecorator

class makepara(ContextDecorator):
def __enter__(self):
print ("<p>")
return self

def __exit__(self, *args):
print ("</p>")
return False

@makepara()
def emit_data():
print (" here is HTML code")

emit_data()

我找到了相关答案this但是当我将上面的代码更改为

from contextlib import contextmanager, ContextDecorator

class makepara(ContextDecorator):
def __enter__(self):
print ("<p>")

def __exit__(self, *args):
print ("</p>")

@makepara()
def emit_data():
print (" here is HTML code")

emit_data()

输出没有变化,这让我想知道 return self 到底做了什么以及如何使用?

最佳答案

您选择返回 self(或其他一些对象,但通常是上下文管理器实例 itself),以便可以使用此语法绑定(bind)名称:

with makepara() as var:
...

__enter__ 返回的对象将绑定(bind)到上下文中的名称 var(事实上,将保持绑定(bind)到 var退出上下文后)。

如果您在进入上下文后不需要任何值绑定(bind),则可以省略显式返回(在这种情况下无论如何都会使用 None 的隐式返回)但没有坏处无论如何返回 self 都没有缺点。

关于python - 返回 "self"?它到底做了什么,我们什么时候需要返回 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50597382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com