Python 如何使用exec在函数中分配局部变量?

Python 如何使用exec在函数中分配局部变量?,python,scope,Python,Scope,我有一个函数,其输入字符串的数目未指定,这些字符串将用作变量名。比如说 def f(*args): for arg in args: exec('{} = 1'.format(arg)) return a f('a', 'b') 运行代码时,我收到以下错误 NameError: name 'a' is not defined 如何为要操作或返回的函数分配局部变量?本文提供的解决方案需要在函数外部创建变量,即将它们添加到全局名称空间,但这不是我想要的。您不

我有一个函数,其输入字符串的数目未指定,这些字符串将用作变量名。比如说

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

    return a

f('a', 'b')
运行代码时,我收到以下错误

NameError: name 'a' is not defined


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

您不能将变量添加到本地名称空间;它的内容在编译时是固定的。您不需要。一开始这是一个坏习惯。不需要动态变量