Sobes.tech
Junior

Python-ში self რა არის?

sobes.tech AI

პასუხი AI-სგან

Python-да self — бул класснын инстанциялык методуна биринчи аргумент. Ал өзү объекттин өзү, анын аркылуу метод чакырылган.

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 инстанциясына таандык.