'With'语句带有一次性变量?

问题描述 投票:0回答:1

是否有可能在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 ...

但是还有另一种方法(不通过对字符串进行子类化和执行输入/退出方法来进行很多繁重的工作吗?

python contextmanager
1个回答
1
投票
def func():
    name = 'Bill'
    print(name)

变量name在函数调用结束后被丢弃,因为它仅在func本地。

注意func定义后的冒号。

© www.soinside.com 2019 - 2024. All rights reserved.