Python 函数如何创建具有在该函数的参数中定义的名称的全局对象?
How can a Python function create a global object with a name defined in an argument of that function?
我想让一个 Python 函数创建一个全局对象,这样这个全局对象的名称就是指定为函数参数的名称。我知道如何在函数中创建全局对象,但我不知道如何使用变量名创建它。
def function1():
global foo
foo = 3
def function2(nameOfObject):
exec("global " + nameOfObject)
bar = 4
function1()
print foo
function2("bar")
print bar
该类函数的实际使用应该是创建一个全局模块对象,该函数需要多次使用。请注意,我不想在函数中创建一个对象,然后 return 它到现有的全局对象。
我觉得你想要的是globals
def foo(name, val):
globals()[name] = val
我想让一个 Python 函数创建一个全局对象,这样这个全局对象的名称就是指定为函数参数的名称。我知道如何在函数中创建全局对象,但我不知道如何使用变量名创建它。
def function1():
global foo
foo = 3
def function2(nameOfObject):
exec("global " + nameOfObject)
bar = 4
function1()
print foo
function2("bar")
print bar
该类函数的实际使用应该是创建一个全局模块对象,该函数需要多次使用。请注意,我不想在函数中创建一个对象,然后 return 它到现有的全局对象。
我觉得你想要的是globals
def foo(name, val):
globals()[name] = val