Курс по усъвършенствано разработване с Python
Глава
>
Ниво
Разширени класове
Обектно наследяване
В тази глава ще разгледаме как да извлечем максимума от класовете, като научаваме различни техники и специфични функции на класовете, които могат да разширят възможностите на обектите в Python.
На това ниво ще се запознаем с една от най-значимите разширени функции на класовете – обектното наследяване. Тази функция ни позволява да създадем клас, който наследява своите функции от друг клас, което ни позволява да създаваме по-динамични обекти, като запазваме основен набор от свойства.

Цел
Напълнете и съхранете шишета с вино, използвайки наследяване на обекти във вашите класове.
Тази стая се използва за пълнене на шишета с вино, има няколко, които все още трябва да се бутилират и опаковат, а това се постига по най-добрия начин с използването на класове. Класовете ви позволяват да създавате обекти, които могат да притежават различни характеристики, в този случай различни видове шишета с вино. Обектите, създадени с помощта на класове, могат да наследяват свойства от други класове, които се наричат child класове, докато класовете, използвани за базисно създаване на повече класове, се наричат parent класове.
# Parent Class
class wine_bottle:
color = ""
def set_bottle(self):
player.place("empty bottle")
# Child Class
class fill_bottle(wine_bottle):
def fill_bottle(self):
player.combine(["empty bottle", self.color + " wine"])
player.speak("The bottle's color is: %s" % self.color)
player.collect(self.color + "bottle")
Има два (2) класа, готови за използване, като parent класът се използва, за да постави бутилка пред бъчвата за пълнене, а child класът се използва за комбиниране и настройване на шишето с вино. Child класът наследява свойствата от parent класа, което позволява да създавате варианти на бутилките без прекалено много усилия.
Първо се разходете и съберете четирите (4) празни бутилки в горната част на картата. След като ги съберете, отидете към тъмните X, които отбелязват горната част на цветните килими, и се изправете срещу разпределителите за бъчви. Има четири (4) цветни килима, които представят цвета на виното, което трябва да се създаде в тази зона, а именно: "green", "blue", "purple" и "yellow".
При тъмните X, създайте обект, използвайки child класа, например: green_bottle = fill_bottle(). Именувайте обекта според шишето, което се опитвате да създадете, след което задайте цвета на обекта и го активирайте чрез неговите функции.
# Green bottle setup green_bottle.color = "green" green_bottle.set_bottle() green_bottle.fill_bottle()
Направете това за всички четири (4) шишета с вино, на съответните X. След като всички са направени и бутилките са събрани, отидете към светлия X и отворете вратата към виненото изба, използвайки функцията open(), както е показано: player.open(). След това отидете към златния X, с цел да съхраните създадените бутилки в винена стойка.
Поставете всички бутилки в списък, наречен bottles и, докато сте изправени пред винената стойка, използвайте функцията place(), за да съхраните списъка с бутилки, за да завършите нивото. Има четири (4) бутилки, които ще съберете: "green bottle", "blue bottle", "purple bottle" и "yellow bottle".