2012-05-16 3 views
0

Я хочу сделать функцию в Python были один из аргументов является переменной позже ...Как создать переменные из аргументов в 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) 

, но я не уверен, как реализовать это в функции

+2

Использование словарей Python для d o это http://docs.python.org/tutorial/datastructures.html#dictionaries – milancurcic

+4

Что вы на самом деле пытаетесь выполнить? – msvalkon

+2

Вы НЕ хотите этого делать. –

ответ

1

создать переменную из string использования vars()

+0

tnx, который может быть полезен –

+0

Из документов: «** Примечание ** Содержимое этого словаря не должно изменяться; изменения могут не влиять на значения локальных и свободных переменных, используемых интерпретатором ». (' vars() 'эквивалентно' locals() ') http://docs.python.org/library/functions.html#locals – chepner

1

Edit: продемонстрировать возвращают ссылку на участок для последующего использования

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)) 
+0

Я хочу создать несколько графиков из одной и той же функции ... поэтому мне нужно, чтобы моя функция вводила имя переменной, где позже будет отображаться так, чтобы эти переменные shoudent были только внутри этой функции ... это на самом деле анимация, поэтому последняя строка будет отражена в каждом фрейме e gif и какие изменения являются otheraguments –

+0

Затем вы должны вернуть свою функцию ссылке на созданный сюжет. – chepner

+0

exelent tnx ... я уже пробовал и работает отлично –

 Смежные вопросы

  • Нет связанных вопросов^_^