Когда я передаю параметры в программе (эксперимент по вычислительной биологии), я обычно передаю их через .py файл.
Поэтому у меня есть этот .py файл, который читается следующим образом:
starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000
Затем я выполняю файл и получаю данные. Поскольку программа все на моей машине, и никто другой не имеет к ней доступа, она безопасна в тривиальной форме.
Я также могу написать очень простой файл:
def writeoptions(directory):
options=""
options+="starting_length=%s%s"%(starting_length,os.linesep)
options+="starting_cell_size=%s%s"%(starting_cell_size,os.linesep)
options+="LengthofExperiments=%s%s"%(LengthofExperiments,os.linesep)
...
open("%s%soptions.py"%(directory,os.sep),'w').write(options)
Я хочу передать функцию как один из параметров:
starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000
def pippo(a,b):
return a+b
functionoperator=pippo
И, конечно же, в реальном эксперименте функция pippo будет намного сложнее. И отличается от эксперимента к эксперименту.
Но то, что я не могу сделать, - это написать функцию автоматически. Короче говоря, я не знаю, как обобщить функцию writeoptions, чтобы продолжать писать параметры, если один из вариантов - это функция. Я мог бы, конечно, скопировать исходный файл, но это неэлегантно, неэффективно (потому что оно содержит много дополнительных опций, которые не используются), и, как правило, не решает вопрос.
Как вы получаете питон для записи кода функции, поскольку он записывает значение переменной?