Middle
425
Python тилинде new ыкмасы контекстте эмне кылат?
AIден жооп
sobes.tech AI
__new__ - бул класс методу, ал жаңы класс экземплярын түзүү үчүн жооптуу. Ал __init__'ден эрте чакырылат жана кайсы объект кайтарыларын аныктайт. Бул көбүнчө уникалдуу объекттерди (Singleton) же өзгөрүлбөс түрдөгү объекттерди (мисалы, tuple же str) түзүү үчүн колдонулат.
class Singleton:
_instance = None
def __new__(cls):
# Мындан мурда эле экземпляр бар-жогун текшерет
if cls._instance is None:
# Эч болсо, аны түзүп, ата класска (object) делегирлөө аркылуу түзөт
cls._instance = super().__new__(cls)
# Бар же жаңы түзүлгөн экземплярды кайтарат
return cls._instance
# Колдонуу мисалдары
s1 = Singleton()
s2 = Singleton()
# Күтүлгөн натыйжа: True
print(s1 is s2)
__new__ жана __init__ салыштыруу:
-
__new__:- Статикалык метод (алгачкы аргумент
cls). - Экземпляр түзүлгөндөн эрте чакырылат.
- Түзүлгөн экземплярды кайтарат.
- Статикалык метод (алгачкы аргумент
-
__init__:- Экземпляр методу (алгачкы аргумент
self). - Экземпляр түзүлгөндөн кейин чакырылат.
- Маалымат кайтарбайт (жеке түрдө
Noneкайтарат). - Түзүлгөн объекттин мүнөздөмөлөрүн баштоо үчүн колдонулат.
- Экземпляр методу (алгачкы аргумент