Python class self

В материале рассмотрено использование 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'

 

Структура объектов таким образом получается общая, при этом каждый объект имеет уникальные характеристики.  При инициализации могут задаваться значения по умолчанию.