Руководство для начинающих по объектам 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
, который должен присутствовать в любом нестатическом методе в классе.
Надеюсь, это даст вам начальные инструменты, необходимые для создания собственных классов. Если вам нужны дополнительные объяснения или у вас есть какие-либо конкретные вопросы, не стесняйтесь комментировать и дайте мне знать.
Спасибо за чтение!