Как глобально хранить объект? У меня в коде есть несколько объектов, методы которых мне нужны практически во всех остальных частях программы. Но создавать все время заново эти объекты во всех функциях я не хочу; прописывать global тоже не нравится. В константах тоже не получается хранить, там только скаляр. Но, может, существует другое решение? Конечно, можно обойтись вариантом вызова методов через :: (static), но мне бы хотелось найти более красивое решение.
Один из способов решить эту проблему - использовать паттерн синглтон. Синглтон позволяет создать только один экземпляр объекта и предоставлять к нему доступ из любой части программы.
Пример реализации синглтона на языке Python:
class MyObject: _instance = None def __new__(cls): if cls._instance is None: cls._instance = super().__new__(cls) cls._instance.some_attribute = "value" return cls._instance # Использование синглтона my_object = MyObject() # Теперь my_object доступен из любой части программы print(my_object.some_attribute)
Таким образом, вы создаете один экземпляр объекта и можете дальше использовать его в любой части вашей программы без необходимости создания новых объектов.
Если вы используете другой язык программирования, то также можно реализовать паттерн синглтон в нем, просто нужно найти соответствующий способ создания одного экземпляра объекта.
Один из способов решить эту проблему - использовать паттерн синглтон. Синглтон позволяет создать только один экземпляр объекта и предоставлять к нему доступ из любой части программы.
Пример реализации синглтона на языке Python:
class MyObject:_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
cls._instance.some_attribute = "value"
return cls._instance
# Использование синглтона
my_object = MyObject()
# Теперь my_object доступен из любой части программы
print(my_object.some_attribute)
Таким образом, вы создаете один экземпляр объекта и можете дальше использовать его в любой части вашей программы без необходимости создания новых объектов.
Если вы используете другой язык программирования, то также можно реализовать паттерн синглтон в нем, просто нужно найти соответствующий способ создания одного экземпляра объекта.