nixhacks.net/content/python_oop.rst
2022-09-30 17:54:01 +03:00

60 lines
2.1 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:title: Питонячье ООП на уточках
:date: 24 Jul 21
========================
Питонячье ООП на уточках
========================
Это весьма скупая на информацию напоминалка о работе с классами.
* `Class definitions`_
* `ООП на Python: концепции, принципы и примеры реализации`_
**duck.py**:
.. code-block:: python
# Объявляем класс "птица". От него в последствии будет унаследован
# класс "уточка". Здесь задаются общие характеристики для всех птиц
# и метод "летать". Аргумент `self` это ссылка на объект, в контексте
# которого вызывается метод. Она обязательна для методов классов.
class Bird(object):
can_fly = True
wings = 2
def fly(self):
print('I\'m flying!')
# Уточка это уже конкретный биологический вид (опускам породы и
# виды уточек).
# У неё есть имя и цвет (хотя цвет мог быть и у абстрактной птицы).
# Также уточка обладает уникальным методом "сказать кря".
class Duck(Bird):
name = 'Duck'
color = 'Yellow'
def say_quack(self):
print('quack!')
Как этим пользоваться:
.. code-block:: text
>>> import duck
>>> bird = duck.Bird()
>>> duck = duck.Duck()
>>> bird.fly()
I'm flying!
>>> duck.fly()
I'm flying!
>>> duck.say_quack()
quack!
>>> duck.name = 'Cool Duck'
>>> duck.name
'Cool Duck'
.. Links
.. _ООП на Python\: концепции, принципы и примеры реализации: https://proglib.io/p/python-oop/
.. _Class definitions: https://docs.python.org/3/reference/compound_stmts.html#class-definitions