У објектно оријентисаном језику, класа је прошириви део кода који представља образац за креирање и употребу објеката те класе. Објекат класе једноставно се односи на инстанцу дефинисане класе.

Основе класе Питхон

У програмском језику Питхон, сваки податак је представљен као примерак неке класе. Ако нисте упознати са језиком, погледајте наш почетнички водич за Питхон пре него што крене даље.

Класа пружа скуп понашања у облику функција чланова (познатих и као методе), које имају имплементације које су заједничке све инстанце те класе, а такође одређује начин на који су државне информације за њену инстанцу представљене у облику атрибути.

Опширније: Методе класа у Питхону: важне разлике

Код у наставку представља пример дефинисане класе у Питхону. Класа дефинисана у коду пружа имплементацију класе РацеЦар.

Свака инстанца класе нуди једноставан модел за различите марке аутомобила и садржи следеће стање информације: име аутомобила, име возача, број регистарске таблице аутомобила, тренутна брзина, брзина пуњења и боја.

instagram viewer

Ова класа аутомобила моделира посебан сензор у сваком аутомобилу који против возача аутомобила пријављује казну од 50 долара ако премаши законску границу од 140 миља на сат.

Пример класе (класа аутомобила)


разред аутомобила:
#Цонструцтор
# метода инит одговорна је за иницијализацију вредности инстанце #вариаблес у класи.
деф __инит __ (селф, име_ аутомобила, име_ возача, број_платнице_број,
тренутна_брзина, брзина_напуњења, боја):
селф.цар_наме = име_ аутомобила
селф._дривер_наме = име_ возача
селф._лиценсе_плате_нумбер = број_датотеке_лиценце
селф._цуррент_спеед = тренутна_брзина
селф._спеединг_цхарге = прекорачење брзине
селф._цолоур = боја
# Приступне методе
# Метода гет_цар_наме враћа име аутомобила
деф гет_цар_наме (селф):
врати селф._цар_наме
# Метода гет_дривер_наме враћа име управљачког програма
деф гет_дривер_наме (селф):
врати селф._дривер_наме
# Метода гет_лиценсе_плате враћа регистарску таблицу аутомобила
деф гет_лиценсе_плате (селф):
врати селф._лиценце_плате
# Метода гет_цуррент_спеед враћа тренутну брзину којом се аутомобил # креће
деф гет_цуррент_спеед (селф):
врати селф._цуррент_спеед
# Метода гет_спеединг_цхарге враћа укупан износ новца који
#дривер мора да плати за прекорачење брзине
деф гет_спеединг_цхарге (само):
повратак селф._спеединг_цхарге
# Метода гет_цолоур враћа боју наше слатке вожње!
деф гет_цолоур (селф):
вратити селф._цолоур
# Методе мутатора
# Вредност сет_дривер мења возача нашег аутомобила.
деф сет_дривер (селф, нев_дривер):
селф._дривер_наме = нови_дривер
# Тхе спеединг_тицкет метход осигурава да се возачу наплати 50 долара када # је ухватио брзину изнад 140 миља на сат :(
деф спеединг_тицкет (селф, цуррент_спеед):
ако је тренутна_брзина <= 140:
повратак Нетачно
иначе:
селф._спеединг_цхарге + = 50
повратак Тачно
# Начин маке_паимент осигурава да возач може да плати сав износ #, који дугује за наплату прекорачења брзине.
деф маке_паимент (селф, износ_плаћен):
селф._спеединг_цхарге - = износ_плаћен

Објашњење примера класе Питхон

Параметар "Селф"

Прво, имајте на уму да постоји разлика између потписа методе декларисане у класи и потписа методе који програмер користи за позивање функције. На пример, гет_цолоур метода дефинисана у класи узима један параметар који је параметар „селф“.

Међутим, када програмер позива ову методу на инстанци класе, он не даје никакве параметре. Исти тај феномен се може уочити и у методи брзине_тикета која је дефинисана тако да узима два параметра у класи (тј. Селф и цуррент_спеед), али програмер је у стању да изврши ову методу давањем вредности само за 'цуррент_спеед' параметар.

То је зато што је сврха наведеног параметра „селф“ да веже методу за инстанцу објекта на коју је позвана и није вредност коју програмер мора да додели.

Конструктор

Конструктор класе односи се на метод класе који корисник може позвати да креира објектну инстанцу те класе. У класи Цар, корисник може да креира инстанцу објекта користећи следећу синтаксу:

#креирање сопственог Бугаттија :)
Аутомобил („Бугатти“, „Давид Сасу“, 90828, 0, 0, „Цхерри Ред“)

Извршење овог кода резултира позивом методе __инит__ у класи Цар. Одговорност ове методе је генерирање новоствореног објекта кредитног аутомобила са наведеним вриједностима инстанце. Сваки објекат класе Цар састоји се од шест варијабли које су:

  • _цар_наме
  • _дривер_наме
  • _регистарске таблице
  • _Тренутна брзина
  • _спеед_цхарге
  • _цолоур

Приступне методе

То су методе које су написане за приступ информацијама о стању инстанце објекта. У класи Цар, методе приступа које су написане су:

  • гет_цар_наме
  • гет_дривер_наме
  • гет_лиценсе_плате
  • гет_цуррент_спеед
  • гет_спеединг_цхарге
  • гет_цолоур

Мутаторске методе:

То су методе које су написане да би измениле информације о стању инстанце објекта. У класи аутомобила, мутаторске методе које су написане су:

  • сет_дривер
  • казну за брзу вожњу
  • извршити уплату

Концепт инкапсулације

„Енкапсулација“ је термин који се користи за описивање принципа објектно оријентисаног дизајна где компоненте програма не би требало да откривају унутрашње детаље својих примена. Да бисте боље разумели концепт инкапсулације, погледајте нашу чланак о инкапсулацији.

Провера грешке

Наша примена класе Цар није робусна, јер ће се вероватно срушити или покварити у зависности од улаза који добије од програмера.

Прво, имајте на уму да не проверавамо типове параметара спеединг_тицкет и маке_паимент методе, као ни типове било ког од параметара конструктора. То би могло довести до пада програма ако корисник наведе аргумент који се није очекивао. На пример, ако корисник упути позив као што је спеединг_тицкет („цхипс ахои“), програм ће се срушити јер је тип који је метода очекивала био цео број, а не низ.

Сада разумете основе класе Питхон

У овом чланку упознали сте се са концептом класе Питхон и објекта класе Питхон. Такође сте се упознали са идејама на којима је изграђена класа питхон, као што су: енкапсулација, „селф“ идентификатор, методе приступа и методе мутатора.

Уз ове информације требали бисте сами моћи да креирате једноставну класу Питхон и тестирате је :)

Емаил
ВхатсАпп примењује биометријску потврду идентитета за радну површину и приступ Интернету

Сада ћете морати да верификујете свој идентитет путем мобилног уређаја да бисте повезали налог на радној површини и веб апликацији.

Повезане теме
  • Програмирање
  • Питхон
О аутору
Давид Сасу (1 чланак објављен)Више од Давида Сасуа

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.