Module (54%)
Section (73%)

Основные тезисы


1. Метод - это функция, встроенная в класс. Первый (или единственный) параметр каждого метода обычно называется self, который предназначен для идентификации объекта, для которого вызывается метод, чтобы получить доступ к свойствам объекта или вызвать его методы.


2. Если класс содержит конструктор (метод с именем __init__), конструктор не может возвращать никакого значения и не может быть вызван напрямую.


3. Все классы (но не объекты) содержат свойство с именем __name__, в котором хранится имя класса. Кроме того, свойство с именем __module__ хранит имя модуля, в котором был объявлен класс, а свойство с именем __bases__ представляет собой кортеж, содержащий суперклассы класса.

Например:

class Sample: def __init__(self): self.name = Sample.__name__ def myself(self): print("My name is " + self.name + " living in a " + Sample.__module__) obj = Sample() obj.myself()

Код выводит:

My name is Sample living in a __main__

output



Упражнение 1

Объявление класса Snake приведено ниже. Дополните класс методом с именем increment(), добавив 1 к свойству __victors.

class Snake: def __init__(self): self.victims = 0



Упражнение 2

Переопределите конструктор класса Snake, чтобы он имел параметр для инициализации поля victim значением, переданным объекту во время создания.




Упражнение 3

Можете предсказать вывод следующего кода?

class Snake: pass class Python(Snake): pass print(Python.__name__, 'is a', Snake.__name__) print(Python.__bases__[0].__name__, 'can be a', Python.__name__)