Простой Python. Современный стиль программирования (Любанович) - страница 276

8. Модифицируйте класс Element, сделав атрибуты name, symbol и number закрытыми. Определите геттер, возвращающий значение атрибута, для каждого из них:

>>>> class Element:

>…·····def __init__(self, name, symbol, number):

>…·········self.__name = name

>…·········self.__symbol = symbol

>…·········self.__number = number

>…·····@property

>…·····def name(self):

>…·········return self.__name

>…·····@property

>…·····def symbol(self):

>…·········return self.__symbol

>…·····@property

>…·····def number(self):

>…·········return self.__number

>…

>>>> hydrogen = Element('Hydrogen', 'H', 1)

>>>> hydrogen.name

>'Hydrogen'

>>>> hydrogen.symbol

>'H'

>>>> hydrogen.number

>1

9. Определите три класса: Bear, Rabbit и Octothorpe. Для каждого из них определите всего один метод — eats(). Этот метод должен возвращать значения 'berries' (для Bear), 'clover' (для Rabbit) или 'campers' (для Octothorpe). Создайте по одному объекту каждого класса и выведите на экран то, что он ест:

>>> class Bear:

>…·····def eats(self):

>…·········return 'berries'

>…

>>>> class Rabbit:

>…·····def eats(self):

>…·········return 'clover'

>…

>>>> class Octothorpe:

>…·····def eats(self):

>…·········return 'campers'

>…

>>>> b = Bear()

>>>> r = Rabbit()

>>>> o = Octothorpe()

>>>> print(b.eats())

>berries

>>>> print(r.eats())

>clover

>>>> print(o.eats())

>campers

10. Определите три класса: Laser, Claw и SmartPhone. Каждый из них имеет только один метод — does(). Он возвращает значения 'disintegrate' (для Laser), 'crush' (для Claw) или 'ring' (для SmartPhone). Далее определите класс Robot, который содержит по одному объекту каждого из этих классов. Определите метод does() для класса Robot, который выводит на экран все, что делают его компоненты:

>>>> class Laser:

>…·····def does(self):

>…·········return 'disintegrate'

>…

>>>> class Claw:

>…·····def does(self):

>…·········return 'crush'

>…

>>>> class SmartPhone:

>…·····def does(self):

>…·········return 'ring'

>…

>>>> class Robot:

>…·····def __init__(self):

>…·········self.laser = Laser()

>…·········self.claw = Claw()

>…·········self.smartphone = SmartPhone()

>…·····def does(self):

>…·········return '''I have many attachments:

>… My laser, to %s.

>… My claw, to %s.

>… My smartphone, to %s.''' % (

>…·····self.laser.does(),

>…·····self.claw.does(),

>…·····self.smartphone.does())

>…

>>>> robbie = Robot()

>>>> print(robbie.does())

>I have many attachments:

>My laser, to disintegrate.

>My claw, to crush.

>My smartphone, to ring.

Глава 7. Работаем с данными профессионально

1. Создайте строку Unicode с именем mystery и присвойте ей значение '\U0001f4a9'. Выведите на экран значение строки mystery. Найдите имя Unicode для mystery: