2 个回答

0

你可以通过调用 locals() 来往本地作用域添加东西。这个函数会返回一个字典,里面包含了当前可用的作用域信息。你也可以给这个字典赋值,比如 locals()['a'] = 12 这行代码会让变量 a 在本地作用域中存在,并且它的值是 12。

9

如果你想把它们作为全局变量,可以这样做:

globals().update(vars(args))

如果你在一个函数里,并且想把它们作为这个函数的局部变量,你可以在Python 2.x中这样做:

def foo(args):
   locals().update(vars(args))       
   print a, b, c
   return
   exec ""  # forces Python to use a dict for all local vars
            # does not need to ever be executed!  but assigning
            # to locals() won't work otherwise.

不过这个方法在Python 3中不管用,因为在Python 3里,exec不是一个语句,其他一些Python变种,比如Jython或IronPython,可能也不行。

总的来说,我建议你直接给args对象起个短一点的名字,或者用你的剪贴板。:-)

撰写回答