[home] [projects] [knowledge base] [manpages] [code] [markdown] [my ip]

Питонячье ООП на уточках

Это весьма скупая на информацию напоминалка о работе с классами.

duck.py:

# Объявляем класс "птица". От него в последствии будет унаследован
# класс "уточка". Здесь задаются общие характеристики для всех птиц
# и метод "летать". Аргумент `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!')

Как этим пользоваться:

>>> 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'