Я пишу модуль, который предоставляет одну функцию и требует шага инициализации, однако из-за определенных ограничений мне нужно инициализировать при первом вызове, поэтому я ищу подходящую идиома в Python, которая позволила бы мне избавиться от условного.
#with conditional
module.py
initialized = False
def function(*args):
if not initialized: initialize()
do_the_thing(*args)
Я бы хотел избавиться от этого условия с помощью чего-то вроде этого (это не работает):
#with no conditional
module.py
def function(*args):
initialize()
do_the_thing(*args)
function = do_the_thing
Я понимаю, что я не могу просто использовать имена в модуле и изменять их во время выполнения, потому что модули, использующие из на функцию импорта модуля
никогда не повлияет function = other_fun
внутри модуля.
Итак, есть ли какая-нибудь питоническая идиома, которая могла бы сделать это правильно?