Водич за почетнике у Питхон објектно оријентисаном програмирању

Водич за почетнике у Питхон објектно оријентисаном програмирању

Питхон се користи у свему, од Распберри Пи до машинског учења. Ако желите да радите на било ком великом пројекту, мораћете да знате како Питхон ради са објектно оријентисаним програмирањем (ООП). Овај чланак ће покрити саме основе које морате знати.





Ако се заправо не бавите програмирањем, зашто уместо тога не бисте погледали ове најбоље Монти Питхон скице? Они су ипак инспирисали језик!





Чекај, Питхон није прави језик?

Да разјаснимо једну ствар: Питхон ЈЕ прави програмски језик, популаран је и брзо расте. Само зато што се чита као псеудокод и можете кодирајте Минецрафт на Пи са њим , то не значи да би требало да га одбаците као мањи језик.





ООП је камен темељац модерног развоја софтвера, а Питхон је више него способан да га прати. Можда ради једну или две ствари другачије од других уобичајених језика, али немојте то дозволити да вас одбије.

Овај водич ће претпоставити основно знање о Питхону, али ћемо успут покрити све сложене ствари. Ако сте тек почели са Питхон -ом, зашто не бисте погледали ове трикове за учење новог програмског језика, или шта је са једноставним пројектом, попут читања и писања у Гоогле табеле са Питхон -ом?



Питхон Предуслови и подешавање

Пре него што почнете, можда ћете желети да подесите Питхон развојно окружење. Користићемо Питхон 3.6.5 , и док можете користити старије верзије, имат ћете мање проблема у наставку ако користите прилично нову верзију.

Желите да креирате виртуелно окружење ако га већ немате и инсталирајте ПИП за Питхон ако то није инсталирано (ипак долази са већином модерних инсталација Питхона). Када их подесите, бићете спремни. Хајде да почнемо!





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

ДО класа је основни градивни елемент ООП -а. Час је попут плана или плана. Они дефинишу карактеристике објекта. На пример, ако имате класу аутомобила, може се навести да постоје четири точка, најмање једно седиште и мотор.

Ево како направити класу у Питхону:





class Vehicle:
''' This class defines vehicles. '''
pass

Једноставно зар не? Овде се дешава неколико ствари. Обратите пажњу на коментар на врху класе. Ово је посебан коментар који се зове а доцстринг . Требало би да објасни мало о вашем коду. Користећи троструке наводнике ( '' ' ), говорите Питхону да је ово доцстринг.

Тхе проћи кључна реч говори Питхону да не ради ништа. То је посебна реч и о њој можете размишљати као о тодо. То ће покренути ваш код, али заправо не ради ништа.

Ако покренете овај код, видећете да се ништа неће догодити. Морате да инстанцирати ти разред. То ефективно значи ићи и градити објекат на основу плана дефинисаног у класи. Можете да креирате колико год копија желите, свака са различитим својствима. Ево како то радите:

red_car = Vehicle()

Ако ово поново покренете, видећете да се ништа неће догодити. Код ради исправно, али нисте му рекли да учини било шта приметно. Тхе Возило цласс дефинише нацрте за возило, а ова најновија линија ствара објекат возила и даје му име црвени аутомобил .

Могуће је направити онолико објеката колико желите:

red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

Додајмо још неки код. Додајте методу тзв __у томе__ до Возило класа:

class Vehicle:
''' This class defines vehicles. '''
def __init__(self, color='plain'):
''' Setup some custom car properties '''
print('New car made!')
self.color = color
red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

Обратите посебну пажњу на ово __у томе__ метода. Мора почети и завршити са два подвлачења. Ово је посебан метод у Питхону. Он се аутоматски позива када креирате нови објекат. Покретање овог кода ће приказати речи „Нови аутомобил је направљен!“ три пута.

Коначно, __у томе__ узима прилагођени аргумент који се зове боја . Знак једнакости и низ одмах након тога говоре Питхону да постави боју на „обичну“ ако није наведена. Можете изменити своје инстанце да бисте подесили боју аутомобила при креирању:

red_car = Vehicle(color='red')
green_car = Vehicle(color='green')
blue_car = Vehicle(color='blue')

Ако одштампате боју аутомобила, видећете да свака инстанца има другу боју, иако су све три направљене по истим спецификацијама (класа). Питхон вам омогућава приступ готово било којој променљивој или објекту --- нема много других језика који вам то омогућавају:

print(red_car.color)
print(green_car.color)
print(blue_car.color)

Ово ради јер сте додијелили боја до само.боја . Селф је још једна посебна кључна реч у Питхону и односи се на сваку посебну инстанцу класе. Кад год користите селф, можете поставити или приступити подацима јединственим за ту инстанцу. Црвени аутомобил има црвену боју, на пример.

Измените свој __у томе__ начин чувања буке аутомобила у променљивој:

self.noise = 'Vroooom'

Да бисте одштампали буку аутомобила, само можете да приступите бука променљива, као што сте урадили са бојом, али ово није најбоља идеја. Шта ако, док возите аутомобил, желите да у исто време ради неки други код, можда код који још нисте написали? Или шта ако желите да промените начин вожње аутомобила у будућности? Стварањем а функција (познат и као а метода ), можете строго контролисати како ствари функционишу. Додајте ово испод свог __у томе__ метода:

def drive(self):
print(self.noise)

Ову методу можете назвати врло једноставно:

red_car.drive()

Кад год позовете погон метод, Питхон ће одштампати звук. Ово можете проширити за обављање свих задатака, али оставите то за сада.

Добро урађено! До сада бисте требали чврсто да овладате основама. Требали бисте бити у могућности да креирате и користите своје класе, од којих свака има своје јединствене способности и функције.

Шта је са приватним променљивим у Питхону?

Приватни објекти су врло чести у већини других језика. Они су једноставно променљиве или функције којима се не може приступити изван класе. Они могу бити код који захтева посебне услове пре употребе или су једноставно дизајнирани само за унутрашњу употребу. Без обзира на разлог, инстанце не могу приступити приватним члановима ... осим ако не кодирате у Питхону.

Питхон нема приватне чланове. Уместо тога, Питхон се ослања на систем части: „Сви ми пристајемо на одрасле особе“. Питхон програмери разумеју да ћете можда желети да се позабавите осетљивим унутрашњостима класе, и то је у реду, тако да ништа не би требало да буде заиста недоступно.

Међутим, Питхон има прихваћену конвенцију за означавање одређених променљивих као „приватних“ у смислу „Ова променљива је за интерну употребу и вероватно је не морате додиривати“. Конвенција има за циљ да имена променљивих ставе префикс у доњу црту:

_some_secret_variable = 42

Ово делује као упозорење другим програмерима. Питхон вам неће спречити да приступите овоме, али подвлачење вас саветује да ово није дизајнирано да се користи на овај начин и да наставите на сопствену одговорност.

Понекад је то Питхон начин да се позабавите скривеним стварима, али ризикујете да ствари можда неће радити исправно.

Разумевање наслеђивања у Питхону

Наслеђивање је још један начин за смањење дуплирања и поновну употребу кода. Размишљајући о односу родитеља и детета, наслеђивање дозвољава дете да бисте делили заједнички код са родитељ . Хајде да имплементирамо електрични аутомобил, који наслеђује од родитеља.

Додајте овај код испод Возило класа:

class ElectricCar(Vehicle):
''' Electric vehicle class. '''
def charge(self):
print('Zzz')
electric_car = ElectricCar()
electric_car.charge()
electric_car.noise = 'Whoosh'
electric_car.drive()

После Електрични аутомобил је дефинисан, Возило класа је наведена унутар две заграде. Ово Питхону говори Електрични аутомобил је дете од Возило . То му даје приступ свим подацима и методама наведеним у Возило .

Електрични аутомобил има своје посебне методе. Може се пунити (нешто што друга возила не могу). Променом буке аутомобила, а затим и вожњом, можете видети да електрични аутомобил производи другачији звук, а нисте морали да дефинишете начин вожње. То је зато што је диск наслеђен од родитеља.

Још више проширите своје знање о Питхону

Ови примери су показали колико ООП може бити лак у Питхону. Тек смо обрадили саме основе, али кад их разјасните, остало је лако.

како се одјавити из поште на мац -у

Ако желите да наставите са учењем Питхона или можда примените ове ООП вештине у праксу, зашто не бисте погледали низове и листе у Питхону , или шта је са комуникацијом Питхон -а и ЈаваСцрипт -а?

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

Објави Објави Твеет Емаил Избришите ове Виндовс датотеке и фасцикле да бисте ослободили простор на диску

Треба да очистите простор на диску на рачунару са оперативним системом Виндовс? Ево Виндовс датотека и фасцикли које се могу безбедно избрисати како би се ослободио простор на диску.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Програмирање
  • Питхон
  • Објектно оријентисано програмирање
О аутору Јое Цобурн(136 објављених чланака)

Јое је дипломирао рачунарство на Универзитету Линцолн, УК. Он је професионални програмер софтвера и када не лети беспилотним летелицама или не пише музику, често га се може затећи како фотографише или производи видео записе.

Више од Јоеа Цобурна

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

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

Кликните овде да бисте се претплатили