Home > Net >  Python convert string to function and execute it
Python convert string to function and execute it

Time:11-20

I have several functions in the database as a strings and there is a main function that should take these functions from the database and execute them as functions, and not as text.

How I can transform a string (which describes a function) into a function with arguments and execute it in Python?

I'm tried exec but I can't return something from function and use it.

For example my function:

some_function = """
def my_random_function(some_param):
    print(some_param)
    return time.time()
"""

CodePudding user response:

100% Never do this ever under any circumstances disclaimer...

the exec statement:

code = """
def f(x):
    x = x   1
    return x

print('This is my output.')
print(f(my_var))
"""

exec(code, {}, {"my_var": 1})

output:

This is my output.
2

CodePudding user response:

Function defined by exec can work like normal function, and of course you can also get the return values. Make sure you have import all the essential libraries (time in your example)

import time

some_function = """
def my_random_function(some_param):
    print(some_param)
    return time.time()
"""

exec(some_function)
return_value = my_random_function(3)
print(return_value)

output

3
1637328869.3345668
  • Related