Sobes.tech
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-ի օրինակին։