2015-11-20 1 views
0

Я создал функцию, которая будет создавать функции и записывать их в файл, но проблема заключается в том, что они записывают в файл по умолчанию реестр. Как я могу записать их в файл как обычную функцию?Как вернуть функцию в виде строки в Python?

def make_route(title): 
    test = 1 
    def welcome(): 
     return test + 1 

    welcome.__name__ = title 
    with open('test2.py', 'a') as f: 
     f.write('\n%s\n' % (welcome)) 

    return welcome 

мне это нужно, чтобы написать

def welcome(): 
    return test + 1 

в файл

+0

Итак, где код? –

+0

Можете ли вы поместить некоторый ввод и вывод PLZ? –

+0

https://docs.python.org/2/library/marshal.html –

ответ

-1

вам нужно сериализовать функцию с помощью marshal

import marshal 
def f(x): return 2*x 
saved = marshal.dumps(f.func_code) 

, то вы можете использовать сохраненную строку:

import marshal, types 
code = marshal.loads(saved) 
f= types.FunctionType(code, globals(), "your_name") 

f(10) #returns 20 
+1

К сожалению, это не отвечает на вопрос, который показывает, почему обычно лучше откладывать ответ, пока вопрос не станет более ясным. – TigerhawkT3

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