Основные тезисы
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__)