Я написал скрипт, который вы могли бы в основном сводятся к следующему:Как сохранить функцию в качестве входного параметра в python?
def Readhtml(a,b):
read some values from an html file
return a list of values
def ReadSQL(a,b):
Read some values from an SQL Database
return a list of values
def mainfunction(Variable):
result = Variable['Readfunction'](Variable['Parameter1'],Variable['Parameter2']) #Variable['Readfunction'] is the function Readhtml or ReadSQL
return result
где Variable
является словарём в качестве набора входных параметров.
Некоторые из этих входных параметров - это функции, используемые для считывания значений или для выполнения операций над ними. Я имею большое количество различных переменных (около 1000), каждый из которых имеет связанный с ним словарь. Пока я определяю свой входной словарь в начале моего скрипта, все работает нормально. Но я хотел бы иметь возможность повторно использовать эти словари и, таким образом, сохранять их в виде/нескольких доступных для чтения и записи входных файлов/входных файлов. Проблема в том, что я не могу понять, как сохранить/прочитать запись словаря Variable['Readfunction']
таким образом, что python понимает, что это не просто строка, а функция, определенная в моем сценарии, которую я хочу использовать.
Таким образом, у меня есть два вопроса:
- Я мог бы просто написать грязный обходной путь, сохранение переменного [ «Readfunction»] в виде строки в файл, перечитайте его как строку и написать функцию, соответствующее имя функции string к функции. Есть ли способ лучше?
- Неужели вся архитектура не имеет смысла? Должен ли я построить его совершенно другим способом, чтобы избежать этой проблемы? Я не такой классный программист, так как вы должны так поступать правильно? Программа уже сложна, чтобы полностью переписать ее, так что это больше связано с обучением в следующий раз.
OP говорит, что он хочет, чтобы файлы были доступными для человека. Это не относится к файлам «pickle», не так ли? – saulspatz