首页 > 解决方案 > 带有一次性变量的“With”语句?

问题描述

是否可以在 python 中执行以下操作?

def func():
    with "Bill" as name:
        print(name)
    # ... more stuff below ...

我知道它可以通过如下函数/闭包来完成:

def func(): 
    def _with(name):
        print(name)
    _with(name="Bill")
    # ... more stuff below ...

但是还有另一种方法可以做到这一点(无需通过子类化字符串和执行进入/退出方法来做很多繁重的工作?

标签: pythoncontextmanager

解决方案


def func():
    name = 'Bill'
    print(name)

该变量name在函数调用结束后被丢弃,因为它只是func.

注意定义后的冒号func


推荐阅读