Middle
Ի՞նչ է անում new մեթոդը Python լեզվի կոնտեքստում։
sobes.tech AI
Պատասխան 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)։
- Օգտագործվում է ստեղծված օբյեկտի հատկությունները սկզբնավորելու համար։
- Օբյեկտի մեթոդ (առաջին արգումենտը