Ръководство за начинаещи по обектно-ориентирано програмиране на Python

Ръководство за начинаещи по обектно-ориентирано програмиране на Python

Python се използва във всичко - от Raspberry Pi до машинно обучение. Ако обаче искате да работите върху всеки голям проект, ще трябва да знаете как Python работи с обектно-ориентирано програмиране (OOP). Тази статия ще обхване самите основи, които трябва да знаете.





Ако всъщност не се занимавате с програмиране, защо вместо това не разгледате тези най -добри скици на Monty Python? В края на краищата те вдъхновиха езика!





Чакайте, Python не е истински език?

Нека изясним едно: Python е истински език за програмиране, популярен е и бързо се разраства. Само защото чете като псевдокод и можете кодирайте Minecraft на Pi с него , това не означава, че трябва да го намалите като по -малък език.





OOP е крайъгълният камък на съвременното разработване на софтуер, а Python е повече от способен да се справи. Може да направи едно или две неща по различен начин от другите мейнстрийм езици, но не позволявайте това да ви отлага.

Този урок ще предполага основни познания по Python, но ще обхванем всички сложни неща по пътя. Ако сте нов в Python, защо не погледнете тези трикове за изучаване на нов език за програмиране или какво ще кажете за прост проект, като четене и писане в Google Sheets с Python?



Предпоставки и настройка на Python

Преди да започнете, може да искате да инсталирате вашата среда за разработка на Python. Ще използваме Python 3.6.5 , и въпреки че можете да използвате по -стари версии, ще имате по -малко проблеми при следващото, ако използвате сравнително нова версия.

Ще искате да създадете виртуална среда, ако вече нямате такава, и инсталирайте PIP за Python ако това не е инсталирано (идва с повечето съвременни инсталации на Python). След като получите тези настройки, ще бъде добре да започнете. Да започваме!





Основите на Python: Класове

ДА СЕ клас е основният градивен елемент на ООП. Класът е като план или план. Те определят характеристиките на обекта. Ако имате клас кола, например, може да се посочи, че има четири колела, поне една седалка и двигател.

Ето как да направите клас в Python:





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

Просто нали? Тук се случват няколко неща. Забележете коментара в горната част на класа. Това е специален коментар, наречен a docstring . Трябва да обясни малко за вашия код. Използвайки тройните кавички ( '' ' ), казвате на Python, че това е docstring.

The пропуск ключовата дума казва на Python да не прави нищо. Това е специална дума и можете да я мислите като задача. Това ще накара вашия код да работи, но всъщност не прави нищо.

Ако стартирате този код, ще видите, че нищо не се случва. Ти трябва да създаване на екземпляр ти клас. Това ефективно означава да отидете и да изградите обект въз основа на плана, определен в класа. Можете да създадете колкото искате копия, всяко с различни свойства. Ето как да направите това:

red_car = Vehicle()

Ако пуснете това отново, ще видите, че нищо не се случва. Кодът работи правилно, но не сте му казали да прави нещо забележимо. The Превозно средство class дефинира чертежи за превозно средство и тази последна линия създава обект на превозно средство и му дава име червена кола .

Възможно е да направите колкото искате обекти:

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()

Обърнете специално внимание на това __в него__ метод. Тя трябва да започне и да завърши с две подчертавания. Това е специален метод в Python. Той се извиква автоматично, когато създавате нов обект. Изпълнението на този код ще покаже думите „Нова кола е направена!“ три пъти.

Накрая, __в него__ приема персонализиран аргумент, наречен цвят . Знакът за равенство и низът непосредствено след това казват на Python да зададе цвета на „обикновен“, ако не е посочен. Можете да промените вашите екземпляри, за да настроите цвета на колата си при създаването:

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

Ако отпечатате цвета на автомобила, ще видите, че всеки екземпляр има различен цвят, въпреки че и трите са направени по една и съща спецификация (клас). Python ви позволява достъп до почти всяка променлива или обект-не много други езици ви позволяват да направите това:

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

Това работи, защото сте задали цвят да се самостоятелно.цвет . Self е друга специална ключова дума в Python и се отнася до всеки конкретен екземпляр на клас. Всеки път, когато използвате self, можете да зададете или да получите достъп до данни, уникални за този екземпляр. Червената кола има червен цвят например.

Променете своя __в него__ метод за съхраняване на шума от колата в променлива:

self.noise = 'Vroooom'

За да отпечатате шума от колата, можете просто да получите достъп до шум променлива, както направихте с цвят, но това не е най -добрата идея. Ами ако, когато шофирате кола, искате някой друг код да работи едновременно, може би код, който все още не сте написали? Или какво, ако искате да промените начина, по който колата се движи в бъдеще? Създавайки a функция (известен също като a метод ), можете строго да контролирате как работят нещата. Добавете това под вашето __в него__ метод:

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

Можете да наречете този метод съвсем просто:

red_car.drive()

Всеки път, когато се обадите на шофиране метод, Python ще отпечата звука. Можете да разширите това, за да изпълнявате всички имения от задачи, но да го оставите така, както е засега.

Много добре! Досега трябва да сте хванали здраво основите. Трябва да можете да създавате и използвате свои собствени класове, всеки със свои уникални способности и функции.

Какво ще кажете за частните променливи в Python?

Частните обекти са много често срещани в повечето други езици. Те са просто променливи или функции, които не могат да бъдат достъпни извън класа. Те могат да бъдат код, който изисква да бъдат изпълнени специални условия преди употреба, или просто да са предназначени само за вътрешна употреба. Каквато и да е причината, инстанциите нямат достъп до частни членове ... освен ако не кодирате в Python.

Python няма частни членове. Вместо това Python разчита на система за чест: „Всички ние сме съгласни възрастни“. Програмистите на Python разбират, че може да искате да се потърсите с чувствителните вътрешни елементи на класа и това е добре, така че нищо никога не трябва да бъде наистина недостъпно.

Python обаче има приета конвенция за маркиране на определени променливи като „частни“ по смисъла на „Тази променлива е за вътрешна употреба и вероятно не е нужно да я докосвате“. Конвенцията е да поставя префикс на имената на променливите с долна черта:

_some_secret_variable = 42

Това действа като предупреждение за други програмисти. Python няма да ви спре достъпа до това, но подчертаването ви съветва, че това не е създадено, за да се използва по този начин, и трябва да продължите на свой собствен риск.

Понякога това е начинът на Python да се занимава със скрити неща, но рискувате нещата да не работят правилно.

Разбиране на наследството в Python

Наследяването е друг начин за намаляване на дублирането и повторно използване на кода. Мислейки за отношенията родител и дете, наследяването позволява дете да споделя общ код с родител . Нека внедрим електрическа кола, която наследява от родителя.

Добавете този код под вашия Превозно средство клас:

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

След Електрическа кола е дефиниран, Превозно средство клас е посочен в две скоби. Това казва на Python, че Електрическа кола е дете на Превозно средство . Това му дава достъп до всички данни и методи, предоставени в Превозно средство .

Електрическата кола има свои собствени специални методи. Може да зарежда (нещо, което другите превозни средства не могат да направят). Променяйки шума на колата и след това шофирайки, можете да видите, че електрическата кола издава различен звук и не е необходимо да дефинирате метода на задвижване. Това е така, защото устройството е наследено от родителя.

Разширете още повече знанията си за Python

Тези примери показват колко лесно може да бъде ООП в Python. Ние току -що обхванахме основните неща, но след като ги разберете, останалото е лесно.

цифров аудио spdif без звук windows 10

Ако искате да продължите да изучавате Python или може би да приложите тези OOP умения на практика, защо не погледнете масиви и списъци в Python , или какво да кажем за комуникация на Python и JavaScript?

Ако всичко това ви е накарало да искате повече, не забравяйте да разгледате тези най -добри уебсайтове, за да научите Python.

Дял Дял Туит електронна поща Изтрийте тези файлове и папки на Windows, за да освободите дисково пространство

Трябва да изчистите дисковото пространство на вашия компютър с Windows? Ето файловете и папките на Windows, които могат безопасно да бъдат изтрити, за да се освободи място на диска.

Прочетете Напред
Свързани теми
  • Програмиране
  • Програмиране
  • Python
  • Обектно -ориентирано програмиране
За автора Джо Кобърн(136 статии са публикувани)

Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети с дронове или пише музика, често може да бъде намерен да прави снимки или да произвежда видеоклипове.

Още от Джо Кобърн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате