首页 > 解决方案 > 如何使用 exec 在函数中分配局部变量?

问题描述

我有一个带有未指定数量的输入字符串的函数,这些输入字符串旨在作为变量名。例如

def f(*args):
    for arg in args:
        exec('{} = 1'.format(arg))

    return a

f('a', 'b')

运行代码时,我收到以下错误

NameError: name 'a' is not defined

如何为要操作或返回的函数分配局部变量?在这个类似但不同的问题中提供的解决方案需要在函数之外创建变量,即将它们添加到全局命名空间,但这不是我想要的。

标签: pythonscope

解决方案


推荐阅读