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