如何在python中从参数创建变量

时间:2012-05-16 17:38:58

标签: python function global-variables local-variables

我想在python中创建一个函数,其中一个参数后来是一个变量......

作为一个例子它应该像这样

foo=myfunction("var1","var2",otherarguments)

(请注意,var1var2之前从未使用过字符串)

然后程序应该

var1=blabla
var2=blabla2/otheraguments

我需要这个以便使用GNUplot制作图形的变量将用于设置图形的参数

例如,这应该在函数

var1=Gnuplot.Gnuplot(debug=1)
var1("set terminal gif animate delay 10") #to make animation in gnuplot
var1("set style data lines")
var1.xlabel("name_of_x_axis")
var1("set pm3d")
var1.title("newgraph in 3d")
var1.splot(Gnuplot.GridData(otherarguments,X,Y,binary=0))

我试过这样的事情

example={"var1":"Gnuplot.Gnuplot(debug=1)","var2":[1,2,3,4,5,6,7,8,9]}

然后

locals().update(example)

globals().update(example)

但我不确定如何在函数中实现它

2 个答案:

答案 0 :(得分:1)

string使用vars()

创建变量
>>> foo="bar"
>>> vars()[foo] = 'qwertry'
>>> print bar  # --> 'qwertry'

答案 1 :(得分:1)

编辑:演示返回对绘图的引用供以后使用

def myfunction():
    var1=Gnuplot.Gnuplot(debug=1)
    var1("set terminal gif animate delay 10") #to make animation in gnuplot
    var1("set style data lines")
    var1.xlabel("name_of_x_axis")
    var1("set pm3d")
    var1.title("newgraph in 3d")
    return var1

myplot = myfunction()
# Now call myplot.splot with whatever arguments you want.
myplot.splot(Gnuplot.GridData(otherarguments, X, Y, binary=0))
myplot.splot(Gnuplot.GridData(morearguments, X, Y, binary=0))
myplot.splot(Gnuplot.GridData(stillmore, X, Y, binary=0))
for args in list_of_arguments:
    myplot.splot( Gnuplot.GridData(args, X, Y, binary=0) )