Выведите на экран значение атрибута letters. Понадобилось ли вам создавать
объект класса, чтобы сделать это?
>>> class Thing3:
... def __init__(self):
... self.letters = 'xyz'
...
Переменная letters принадлежит любому объекту класса Thing3, но не самому
классу Thing3:
>>> print(Thing3.letters)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'Thing3' has no attribute 'letters'
>>> something = Thing3()
>>> print(something.letters)
xyz
4. Создайте класс, который называется Element, имеющий атрибуты объекта name, symbol
и number. Создайте объект этого класса со значениями 'Hydrogen', 'H' и 1:
>>> class Element:
... def __init__(self, name, symbol, number):
448
Приложение Д. Ответы к упражнениям
... self.name = name
... self.symbol = symbol
... self.number = number
...
>>> hydrogen = Element('Hydrogen', 'H', 1)
5. Создайте словарь со следующими ключами и значениями: 'name': 'Hydrogen',
'symbol': 'H', 'number': 1. Далее создайте объект с именем hydrogen класса Element
с помощью этого словаря.
Начнем со словаря:
>>> el_dict = {'name': 'Hydrogen', 'symbol': 'H', 'number': 1}
Это работает, однако необходимо напечатать много текста:
>>> hydrogen = Element(el_dict['name'], el_dict['symbol'], el_dict['number'])
Убедимся, что это работает:
>>> hydrogen.name
'Hydrogen'
Однако вы также можете инициализировать объект непосредственно с помощью
словаря, поскольку его ключ names совпадает с аргументами функции __init__
(аргументы — ключевые слова рассматриваются в главе 3):
>>> hydrogen = Element(**el_dict)
>>> hydrogen.name
'Hydrogen'
6. Для класса Element определите метод с именем dump(), который выводит на экран
значения атрибутов объекта (name, symbol и number). Создайте объект hydrogen из
этого нового определения и используйте метод dump(), чтобы вывести на экран
его атрибуты:
>>> class Element:
... def __init__(self, name, symbol, number):
... self.name = name