У меня есть несколько функций (жестко запрограммированы, я не хочу, чтобы Python вычислял производные, в действительности функции более сложные):
def f(x): return x
def g(x): return x ** 2
def f_prime(x): return 1
def g_prime(x): return 2 * x
и список функций:
myfunctions = [f, f, g, f]
Как получить список связанных "простых" функций?
Я думал о:
myderivatives = [globals()[function.__name__ + '_prime'] for function in myfunctions]
и это работает:
[<function f_prime at 0x00000000022CF048>, <function f_prime at 0x00000000022CF048>, <function g_prime at 0x00000000022CF0B8>, <function f_prime at 0x00000000022CF048>]
но есть ли более Pythonic способ получить список «простых» функций, связанных с исходными версиями?
Также есть угловой случай:
from module1 import thisfunction as f
def f_prime(x):
pass
globals()[f.__name__ + '_prime']
# doesn't work because f.__name__ + '_prime' is 'thisfunction_prime' and not 'f_prime'