我需要创建一个能够:
的功能我尝试使用inspect.getargspec()但似乎应该在函数外部调用它。那么有什么建议吗?
这是伪代码: 定义此功能:
def set_global(a1, a2, a3, .... an):
#the number of arguments is not fixed and we need to detect that
for old_input in total input:
new_input_name=str(old_input.name)+'_in'
global new_input_name
new_input_name = old_input.value
答案 0 :(得分:2)
def foo(*args, **kwargs):
print "number of fixed args: %d" % len(args)
print "number of keyword args: %d" % len(kwargs)
print "keyword argument names: %s" % str(kwargs.keys())
我们可以将此globals()
应用到您想要的地方:
def set_globals(**kwargs):
for argname in kwargs:
globals()['%s_in' % argname] = kwargs[argname]
因此,使用Python交互式解释器中的上述函数:
>>> set_globals(foo='x', bar='y')
>>> foo_in
'x'
>>> bar_in
'y'
答案 1 :(得分:1)
我真的认为你正在寻找globals
功能。
a = 1
globals()['a'] = 2
print a #2
globals()['a_in'] = 2
print a_in #2
你可以把它放在一个函数中:
def do_something_with_globals(**kwargs):
for k,v in kwargs.items():
globals()[k+'_in'] = v
可以像这样调用:
a = 1
b = 2
do_something_with_globals(a=a,b=b)
print a_in
print b_in
但老实说,我真的不认为这是个好主意......