В обектно ориентиран език клас е разширяема част от кода, която представлява шаблон за създаване и използване на обектите от този клас. Обектът на клас просто се отнася до екземпляр на дефинирания клас.
Основи на класа на Python
В езика за програмиране Python всяко парче данни се представя като екземпляр на някакъв клас. Ако не сте запознати с езика, вижте нашия ръководство за начинаещи за Python преди да продължите напред.
Клас предоставя набор от поведения под формата на функции на членове (известни също като методи), който има реализации, които са общи за всички екземпляри от този клас и също така определя начина, по който държавната информация за неговия екземпляр се представя под формата на атрибути.
Прочетете още: Методи на класа в Python: Важните разлики
Кодът по-долу представлява пример за дефиниран клас в Python. Класът, дефиниран в кода, осигурява изпълнение на клас RaceCar.
Всеки екземпляр от класа предоставя опростен модел за различни марки автомобили и съдържа следното състояние информация: име на автомобила, име на водача, номер на регистрационния номер на автомобила, текуща скорост, такса за превишена скорост и цвят.
Този клас автомобили моделира специален сензор във всеки автомобил, който регистрира глоба от 50 долара срещу водача на колата, ако той или тя надвиши законовото ограничение на скоростта от 140 мили в час.
Пример за клас (клас автомобил)
клас Автомобил:
# Конструктор
# методът init е отговорен за инициализиране на стойностите на екземпляра #variables в класа.
def __init __ (self, car_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
self.car_name = име_на кола
self._driver_name = име на драйвер
self._license_plate_number = номер на лиценз_платка
self._current_speed = текуща_скорост
self._speeding_charge = превишена скорост_зареждане
self._colour = цвят
# Достъпни методи
# Методът get_car_name връща името на автомобила
def get_car_name (самостоятелно):
връщане self._car_name
# Методът get_driver_name връща името на драйвера
def get_driver_name (self):
върнете self._driver_name
# Методът get_license_plate връща регистрационния номер на автомобила
def get_license_plate (самостоятелно):
връщане self._license_plate
# Методът get_current_speed връща текущата скорост, с която автомобилът се движи #
def get_current_speed (self):
връщане self._current_speed
# Методът get_speeding_charge връща общата сума пари, която
#driver трябва да плати за превишена скорост
def get_speeding_charge (самостоятелно):
връщане self._speeding_charge
# Методът get_colour връща цвета на нашето сладко пътуване!
def get_colour (самостоятелно):
връщане self._colour
# Мутаторни методи
# Стойността set_driver променя драйвера на нашата кола.
def set_driver (самостоятелно, new_driver):
self._driver_name = нов_драйвър
# Методът на speeding_ticket гарантира, че водачът се таксува с 50 долара, когато # той или тя хване скорост над 140 мили в час :(
def speeding_ticket (self, current_speed):
ако current_speed <= 140:
връщане False
друго:
self._speeding_charge + = 50
връщане Вярно
# Методът make_payment гарантира, че водачът е в състояние да плати цялата сума, която дължи на таксите за превишена скорост.
def make_payment (самостоятелно, сума_платена):
self._speeding_charge - = платена сума
Обяснение на примера за клас Python
Параметърът "Self"
Първо, имайте предвид, че има разлика между декларацията на метода, декларирана в класа, и сигнатурата на метода, която се използва от програмиста за извикване на функцията. Например get_colour методът, както е дефиниран в класа, взема един параметър, който е параметърът „самостоятелно“.
Когато обаче програмистът извиква този метод на екземпляр на класа, той не предоставя никакви параметри. Същото явление може да се наблюдава в метода speeding_ticket, който е дефиниран да взема два параметъра в класа (т.е. self и current_speed), но програмистът е в състояние да изпълни този метод, като предостави стойността само за ‘current_speed’ параметър.
Това е така, защото целта на предоставения параметър ‘self’ е да обвърже метода с екземпляра на обекта, на който е бил извикан, и не е стойност, която трябва да бъде дадена от програмиста.
Конструкторът
Конструктор на клас се отнася до метода на класа, който потребителят може да извика, за да създаде екземпляр на обект на този клас. В класа Car потребителят може да създаде екземпляр на обект, като използва следния синтаксис:
#creating нашето собствено Bugatti :)
Автомобил („Bugatti“, „David Sasu“, 90828, 0, 0, „Cherry Red“)
Изпълнението на този код води до извикване на метода __init__ в класа Car. Отговорността на този метод е да генерира новосъздаден обект на кредитна кола с предоставените стойности на екземпляра. Всеки обект от класа Car се състои от шест променливи, които са:
- _car_name
- _driver_name
- _регистрационен номер
- _настояща скорост
- _скорост_зареждане
- _цвят
Методи за достъп
Това са методи, които са написани за достъп до информацията за състоянието на екземпляр на обект. В класа Car методите за достъп, които са написани, са:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Мутаторни методи:
Това са методи, които са написани, за да променят информацията за състоянието на екземпляр на обект. В класа Car методите за мутатор, които са написани, са:
- set_driver
- глоба за превишена скорост
- извършвам плащане
Концепцията за капсулиране
„Капсулиране“ е термин, който се използва за описване на принцип на обектно ориентиран дизайн, при който компонентите на дадена програма не трябва да разкриват вътрешните детайли на съответните им внедрения. За да увеличите разбирането си за концепцията за капсулиране, вижте нашата статия за капсулиране.
Проверка на грешка
Нашето внедряване на класа Car не е стабилно, тъй като има вероятност да се срине или да повреди в зависимост от входа, който получава от програмиста.
Първо, обърнете внимание, че не проверяваме видовете параметри на speeding_ticket и методите make_payment, нито проверяваме типовете на някой от параметрите на конструктора. Това може да доведе до срив на програмата, ако потребителят предостави аргумент, който не се очаква. Например, ако потребителят направи повикване като speeding_ticket („чипове ahoy“), програмата ще се срине, тъй като типът, който методът е очаквал, е цяло число, а не низ.
Сега разбирате основите на класа на Python
В тази статия се запознахте с концепцията за клас Python и обект от клас Python. Също така се запознахте с идеите, върху които е изграден клас на питон, като: капсулиране, идентификатор „самостоятелно“, методи за достъп и мутаторни методи.
С тази информация трябва да можете сами да създадете прост клас на Python и да го тествате :)
Сега ще трябва да потвърдите самоличността си чрез мобилното си устройство, за да свържете акаунта си на работния плот и уеб приложението.
- Програмиране
- Python
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.