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"))