Вот три верных утверждения о классах Python:
-
Классы Python используются для создания объектов. В Python классы служат шаблонами для создания объектов. Объекты являются экземплярами класса, и с ними связаны атрибуты (переменные) и методы (функции).
-
Классы Python поддерживают наследование. Наследование — это мощная функция объектно-ориентированного программирования, которая позволяет классу наследовать атрибуты и методы из другого класса. Это способствует повторному использованию кода и позволяет создавать иерархические отношения между классами.
-
Классы Python могут иметь специальные методы: Python предоставляет набор специальных методов, также известных как «магические» или «dunder» методы, которые позволяют классам определять поведение для встроенных языковых операций. Примеры специальных методов включают
__init__
для инициализации объекта и__str__
для строкового представления.
Теперь давайте углубимся в методы классов Python с примерами кода:
- Метод
__init__
: этот метод вызывается, когда объект создается из класса, и позволяет инициализировать его атрибуты.
class Car:
def __init__(self, make, model):
self.make = make
self.model = model
my_car = Car("Toyota", "Camry")
print(my_car.make) # Output: Toyota
print(my_car.model) # Output: Camry
- Методы экземпляра: эти методы определены внутри класса и используются для выполнения операций над отдельными объектами.
class Circle:
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius2
my_circle = Circle(5)
print(my_circle.area()) # Output: 78.5
- Методы класса. Эти методы привязаны к классу, а не к экземпляру класса. Доступ к ним можно получить по имени класса.
class MathUtils:
@classmethod
def add(cls, x, y):
return x + y
print(MathUtils.add(2, 3)) # Output: 5
- Статические методы: эти методы независимы от класса и не имеют доступа к каким-либо переменным класса или экземпляра.
class StringUtils:
@staticmethod
def reverse_string(string):
return string[::-1]
print(StringUtils.reverse_string("Hello")) # Output: olleH
- Специальные методы. Эти методы позволяют классам определять поведение встроенных языковых операций. Вот пример метода
__str__
, который предоставляет строковое представление объекта.
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
person = Person("John")
print(person) # Output: Person: John