Junior
Python-ում self ինչ է?
sobes.tech AI
Պատասխան AI-ից
self Python-ում դասի օրինակային մեթոդի առաջին արգումենտն է։ Այն ներկայացնում է ինքնին օբյեկտը, որի միջոցով կանչվել է մեթոդը։
self-ի հիմնական առանձնահատկությունները՝
- Հղում օրինակին՝ թույլ է տալիս մուտք գործել հատկություններին և կանչել այլ մեթոդներ այդ կոնկրետ օրինակին։
- Անվանումների համաձայնություն՝
selfսովորական, բայց պարտադիր անուն չէ։ Կարող եք օգտագործել ցանկացած այլ անուն, բայցself-ը լայնորեն ընդունված ստանդարտ է, որը դարձնում է կոդը ավելի ընթեռնելի։ - Ավտոմատ փոխանցում՝ Երբ կանչում եք օրինակային մեթոդ, Python-ը ինքնաբերաբար փոխանցում է կանչող օրինակին որպես առաջին արգումենտ (
self)։ Դրան սահմանելն անհրաժեշտ չէ։ - Հակառակ է статիկ և դասային մեթոդների դեպքում՝ Ստատիկ մեթոդներում (
@staticmethod)self-ը բացակայում է, քանի որ դրանք կապված չեն կոնկրետ օրինակին։ Դասային մեթոդներում (@classmethod) առաջին արգումենտը հղում է դասին (cls), ոչ թե օրինակին։
Օգտագործման օրինակ՝
class MyClass:
def __init__(self, value):
# Տվյալ արժեքը վերագրում ենք օրինակային հատկությանը `value`
self.value = value
def print_value(self):
# Օգտագործում ենք `self`՝ մուտք գործելու այս օրինակին պատկանող `value` հատկությանը
print(f"Value is: {self.value}")
# Ստեղծում ենք դասի օրինակ
obj = MyClass(10)
# Կանչում ենք օրինակային մեթոդը։ Python-ը ինքնաբերաբար փոխանցում է `obj`-ին որպես `self`
obj.print_value()
Այս օրինակով, self-ը __init__ և print_value մեթոդների ներսում հղում է obj օբյեկտին։ Բան self-ի բացակայության դեպքում, հնարավոր չէր լինի մուտք գործել value հատկությանը, որը պատկանում է հենց այս MyClass-ի օրինակին։