Наследяване и класове в Python

Съдържание
Наследството е един от начините за насърчаване на това да не се налага да работите твърде много, като ни помага да избегнем кодирането на един и същ код няколко пъти, може би можем да мислим, че можем да направим това с функции, но какво се случва, когато имаме клас и искаме за да направите много подобен, който променя само един или два аспекта, тук това влиза в игра.
Наследството не е нищо повече от предаване на атрибутите и методите на висш и абстрактен клас на друг, независимо дали искаме да го направим по -конкретен или да го направим много по -абстрактен, като разширим неговия спектър на действие.
Нека си представим за момент, че трябва да направим клас правоъгълник, това е нещо доста специфично, тъй като правоъгълникът е определена геометрична форма, но въпреки това той има общи характеристики с други фигури, какво ще стане, ако вместо да правим конкретен клас, ние правим Клас фигури, който включва общите аспекти и атрибути и след това нашият клас правоъгълник наследява тези атрибути и след това трябва само да добавим специфичните методи и атрибути.
Класът не е нищо повече от колекция от абстрактно дефинирани атрибути и методи, върху които можем да изграждаме обекти. Можем да видим пример в реалния живот, ако видим птица през прозореца, трябва да знаем, че тя принадлежи към класа птици, но ако тази птица е орел, тогава казваме, че това е един от подкласовите орели, които от своя страна принадлежи към класа птици и по този начин можем да продължим да посочваме от по -високо абстрактно ниво (птица) към по -специфично ниво (орел), а атрибутите на орела са това, което го определя и отличава от другите птици.
Нека видим малък пример за това как да изградим нашите класове в Python.

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

Увеличете

Ако погледнем присвояването, foo = Person (), това, което наистина правим, е да създадем обект от тип Person (), така че сега foo ще има атрибутите и достъпа до методите на класа Person.
След това виждаме, че извикваме метода setName () за два различни обекта, тук вече посочваме всеки с различни атрибути, но те принадлежат към един и същи клас, нещо подобно на примера на орела, който видяхме няколко параграфа преди.
В крайна сметка при извикване на метода greet () всеки обект демонстрира своята разлика, въпреки че започва от същия абстрактен произход. По този начин не трябваше да пишем дефиниционен код за всеки обект, а просто да използваме повторно абстрактния код на класа Person.
С това приключваме този урок, това е доста теория, която трябва да продължим да практикуваме и задълбочаваме, тъй като това е основата на това какво е обектно-ориентираното програмиране, което ще ни позволи да се възползваме от много от функционалностите на Python.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave