我想在python中创建一个函数,其中一个参数是稍后的变量...
举个例子,应该是这样的
foo=myfunction("var1","var2",otherarguments)
(请注意,var1
和var2
是以前从未使用过的字符串)
然后程序应该使
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)
但我不确定如何在函数中实现这一点
从
string
使用vars()
创建变量
>>> foo="bar"
>>> vars()[foo] = 'qwertry'
>>> print bar # --> 'qwertry'
编辑:演示返回对绘图的引用供以后使用
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) )