Я читал о нескольких подходах к созданию одноэлементной функции в этом SO вопросе .
Я предложил другой подход
def my_singleton():
if not my_singleton.instance:
class MyClass:
pass
my_singleton.instance = MyClass()
return my_singleton.instance
my_singleton.instance = None
Что с этим не так?подход по сравнению с другими подходами, упомянутыми в предыдущем вопросе SO?Есть ли какие-либо последствия, связанные с памятью / GC / поток безопасности / жизненный цикл экземпляра.Я спрашиваю об этом, потому что другие подходы выглядят довольно сложными для начинающего (метакласс, декораторы, базовый класс, декораторы, возвращающие класс)