yield与海象操作符:=导致语法错误


import contextlib
from win32com.client import Dispatch  
@contextlib.contextmanager
def excel_ctx() -> Generator[Dispatch, None, None] :
try:
yield excel := Dispatch("Excel.Application")
finally:
excel.quit()

意味着创建一个新的Excel应用程序并每次调用它的quit方法。我以为用海象运算符可以写得更简洁,但我得到了SyntaxError: invalid syntax

您需要像这样在walrus操作符周围添加括号:

yield (excel := Dispatch("Excel.Application"))

相关内容

  • 没有找到相关文章

最新更新