Руководство для начинающих по объектам Python 3.

Мы пишем классы Python очень просто. Вот пример:

class MyClass:
  ...

Это основное определение класса.

Функция инициализации

Любому классу в Python, который использует нестатические методы, нужна функция инициализации. Вот как вы пишете:

class MyClass:
  def __init__(self):
    ...

Каждый раз, когда вы создаете новый объект из этого класса, этот метод будет запускаться, и у сгенерированного объекта будут все методы и члены, определенные в классе. Вот полный пример:

class MyClass:
  def __init__(self):
    self.x = 12
my_obj = MyClass()
# print(my_obj.x) will print 12.

Методы

Класс может определять методы, которые объект будет предлагать любому, кто его использует. Вот пример:

class MyClass:
  def __init__(self):
    self.x = 12
  def get_x(self):
    return x
my_obj = MyClass()
# print(my_obj.get_x()) will print 12.

Статические методы

Статические методы - это методы, которые вы можете использовать в самом классе. Использование их на реальных экземплярах класса может привести к неприятным результатам.

Определение довольно простое: используйте декоратор staticmethod и удалите сам контекст, например:

class MyClass:
  def __init__(self):
    self.x = 12
  
  @staticmethod
  def print_me():
    print("me")
my_obj = MyClass()
# MyClass.print_me() will print "me".

Статическим методам не нужно создавать для них объект. В свою очередь, они также не знают ни о каких членах, созданных при запуске __init__. Используйте их осторожно.

Вывод

В этой статье я показал вам, как написать класс Python. Теперь вы знаете о методе __init__, который должен присутствовать в любом нестатическом классе Python, а также об аргументе self, который должен присутствовать в любом нестатическом методе в классе.

Надеюсь, это даст вам начальные инструменты, необходимые для создания собственных классов. Если вам нужны дополнительные объяснения или у вас есть какие-либо конкретные вопросы, не стесняйтесь комментировать и дайте мне знать.

Спасибо за чтение!