gpt4 book ai didi

python - 如何调用 contextmanager 忽略产生的值(在一行中)?

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

例如:

@contextmanager
def add_stuff(arg):
parser = Parser(arg)
# do something here
yield parser
# do something there
do_stuff(parser)

通常,我这样调用它:

with add_stuff("foo") as p:
p.add_more_stuff(1, 2, 3)
p.add_more_stuff(4, 5, 6)

但有时我不需要“添加更多东西”

with add_stuff("foo"):
pass
<小时/>

有没有一种方法可以在一行中调用add_stuff(通过将pass放在同一行上而不会违反pep8)?

<小时/>

下面的示例不起作用,因为 add_stuff 不仅仅是生成器并且不可迭代:

list(add_stuff("foo"))

或者我应该添加一些 util func 吗?

def wizz(gen):
with gen:
pass

wizz(add_stuff("foo"))

或者继续使用with...

最佳答案

def use(cm):
with cm:
pass

那么 use(add_stuff("foo")) 就是 PEP 8-y。

关于python - 如何调用 contextmanager 忽略产生的值(在一行中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408449/

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