Как правило, это плохая идея, подумайте о реструктуризации кода. Тем не менее, вы можете использовать getattr(...)
в сочетании с разделением вашей строки на функцию и часть параметров:
import random, re
class Job():
def random_number(self, start, end, prec=0):
number = round(random.uniform(start, end), prec)
if (prec == 0):
return int(number)
return number
def run(self, command):
fun, params, _ = re.split(r'[()]', command)
params = map(int, params.split(","))
func = getattr(Job, fun)
print(func(*params))
job = Job()
job.run("random_number(1,10,0)")
Очевидно, вам нужно будет добавить некоторое управление ошибками (сломанные строки, функции , которых не существует, вместо целых чисел с плавающей точкой - вы поняли).