«Алгоритмдеу және бағдарламалау» пәнінен оқу тәжірибесі бойынша


тақырып. Объектілерді құрады және олармен жұмыс істейді, конструкторлар мен деструкторларды қолданады



бет34/64
Дата06.02.2022
өлшемі2,01 Mb.
#79582
1   ...   30   31   32   33   34   35   36   37   ...   64
Байланысты:
ПИТОН УМК

5 тақырып. Объектілерді құрады және олармен жұмыс істейді, конструкторлар мен деструкторларды қолданады
Класстар және объектілер
Python объектілі-бағытталған бағдарламалау парадигмасын қолдайды, бұл дегеніміз, біз бағдарлама компоненттерін кластар түрінде анықтай аламыз.

Класс объектінің үлгісі немесе формальды сипаттамасы болып табылады, ал объект осы кластың данасын, оның нақты іске асырылуын ұсынады. Келесі аналогияны жүргізуге болады: бізде адам туралы кейбір түсінік бар - екі қол, екі аяқ, бас, ас қорыту, жүйке жүйесі, ми және т.б. бар. Нақты бар адам (осы кластың нақты данасы) осы кластың объектісі болып табылады.


Код тұрғысынан класс белгілі бір тапсырманы орындайтын функциялар мен айнымалыларды біріктіреді. Класс функциялары әдістер деп аталады. Олар кластың мінез-құлқын анықтайды. Класс айнымалылары атрибуттар деп аталады - олар класс жағдайын сақтайды.
Класс class кілт сөз арқылы анықталады:

Класс объектісін құру үшін келесі синтаксис қолданылады:

Мысалы, адамды ұсынатын қарапайым Person класын анықтаймыз:

Person класы адам атын сақтайтын name атрибутын және адам туралы ақпарат шығаратын display_info әдісін анықтайды.
Кез келген кластың әдістерін анықтау кезінде олардың барлығы бірінші параметр ретінде шартты self деп аталатын ағымдағы объектіге сілтеме алуы тиіс (бағдарламалау тілдерінің қатарында аналогы бар - this негізгі сөзі). Класс ішінде осы сілтеме арқылы біз сол кластың әдістері мен атрибуттарына жүгіне аламыз. Атап айтқанда, self.name өрнек арқылы пайдаланушы атын алуға болады.
Person класын анықтағаннан кейін person1 және person2 объектілерінің жұбын жасаймыз. Объектінің атауын пайдалана отырып, біз оның әдістері мен атрибуттарына жүгіне аламыз. Бұл жағдайда әрбір объектіде жолды консольге шығаратын display_info () әдісін шақырамыз және екінші объектіде name атрибутын өзгертеміз. Display_info әдісін шақырған кезде self параметрі үшін мәнді беру қажет емес.
Конструкторлар
Класс объектісін құру үшін конструктор қолданылады. Осылайша, біз Person класс объектілерін жасаған кезде, біз барлық кластар бар әдепкі конструкторды пайдаландық:

Алайда, біз кластарда конструкторды арнайы әдістің көмегімен айқын анықтай аламыз, ол __init() деп аталады. Мысалы, Person класын өзгертеміз, оған конструктор қосу арқылы:

Бірінші параметр ретінде конструктор сондай - ақ ағымдағы self нысанына сілтеме қабылдайды. Жиі конструкторларда класс атрибуттары орнатылады. Осылайша, бұл жағдайда екінші параметр ретінде конструкторға атрибут үшін орнатылатын Пайдаланушының аты беріледі self.name. атрибут үшін Person класының алдыңғы нұсқасындағыдай name айнымалысын класта анықтау міндетті емес. Мәндерді орнату self.name = name name атрибутын жасайды.

Нәтижесінде біз келесі консоль қорытындысын аламыз:



Деструктор
Нысанмен жұмыс аяқталған соң, біз del операторын оны жадтан жою үшін пайдалана аламыз:

Айта кету керек, негізінен бұл міндетті емес, өйткені скрипт жұмысы аяқталғаннан кейін барлық нысандар автоматты түрде жадыдан жойылады.
Сонымен қатар, біз del операторын шақыру нәтижесінде немесе объектіні автоматты түрде жою кезінде шақыратын кірістірілген _del_функциясын іске асыратын деструкторды класта анықтай аламыз. Мысалы:

Консоль шығысы:





Достарыңызбен бөлісу:
1   ...   30   31   32   33   34   35   36   37   ...   64




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет