В материале рассмотрено использование python class self и приведен пример создания класса, для которого self является обязательным аргументом.
Python class self — пример создания класса
class Pet: def __init__(self): a = Pet() b = Pet()
Фрагмент кода, отвечающий за инициализацию класса.
При определении класса фактически задается функция, которая в дальнейшем может использоваться для создания объектов, как это сделано выше.
Python при выполнении код разбирает его идентифицируя класс, метод и объекты
Pet().__init__(a)
здесь присутствуют три составляющие
Pet() — класс
__init__ — метод
a — объект
Аргумент self позволяет определить объект, с которым выполняются операции. Методы класса общие для всех объектов, атрибуты — нет.
Python работает таким образом, что первый аргумент каждого метода является обращением к объекту.
Добавим в пример атрибут и метод. Атрибут pet_name со значением по умолчанию равным нулю. Значение устанавливается при инициализации. Метод get_length будет возвращать длину pet_name.
class Pet: def __init__(self, value=0): self.pet_name = value def get_length(self): return(len(self.pet_name))
Если теперь создать объект класса
d = Pet('Cat')
Python выполнит:
Pet().__init__(d, 'Cat')
При обращении к методу:
d.get_length()
Python выполнит:
Cat.how_big(d)
За счет self инициализируется определенный объект
Далее пример класса, в скобках определяются параметры, которые будут передаваться при создании объектов. Они будут индивидуальны для каждого.
Методы позволяют присваивать значения. Через self передается содержимое переменных.
class Pet: def __init__(self, pet_name, food=None, things_to_do=[]): self.name = pet_name self.dob = food self.times = things_to_do
jefrey = Cat('jefrey james', 'milk', ['run', 'sit'])
>> jefrey.name
'jefrey james'
Структура объектов таким образом получается общая, при этом каждый объект имеет уникальные характеристики. При инициализации могут задаваться значения по умолчанию.
Читайте про конструкцию if __name__ == '__main__' и её использование в коде.