0

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

作为一个例子,它应该是这样的

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

(注意var1andvar2是以前从未使用过的字符串)

那么程序应该使

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)

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

4

2 回答 2

1

string从使用中创建变量vars()

>>> foo="bar"
>>> vars()[foo] = 'qwertry'
>>> print bar  # --> 'qwertry'
于 2012-05-16T17:44:18.653 回答
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) )
于 2012-05-16T17:51:55.953 回答