Основы Python: как работают классы и объекты
Development, Python | Комментировать запись
Python — это объектно-ориентированный язык программирования. Классы и объекты являются основными строительными блоками в этом языке.
Классы Python
Читайте также: Типы данных в Python 3
Если вы помните, базовые типы данных в python определяют только один вид данных, не более. Но что было бы, если бы мы могли объявить тип данных, который сам содержит более одного типа данных и может работать с ними с помощью любой функции? Классы Python дают нам такую возможность. Класс Python — это план, на основе которого создаются экземпляры класса.
Простое объявление класса Python
Перед вами самая базовая структура определения класса Python.
class ClassName: # list of python class variables # python class constructor # python class method definitions
А теперь давайте посмотрим на реальный пример использования класса:
#definition of the class starts here class Person: #initializing the variables name = "" age = 0 #defining constructor def __init__(self, personName, personAge): self.name = personName self.age = personAge #defining class methods def showName(self): print(self.name) def showAge(self): print(self.age) #end of the class definition # Create an object of the class person1 = Person("John", 23) #Create another object of the same class person2 = Person("Anne", 102) #call member methods of the objects person1.showAge() person2.showName()
Этот пример в значительной степени говорит сам за себя. Как мы знаем, строки, начинающиеся с «#», являются комментариями Python. Комментарии объясняют другим разработчикам, которые читают ваш код, что именно этот код делает. Вы получите следующий результат:
Объявление классов в Python
Эта строка отмечает начало определения класса для класса ‘Person’:
class Person:
Переменные классов Python
#initializing the variables name = "" age = 0
‘name’ и ‘age’ — две переменные, которые включены в класс ‘Person’. Каждый раз, когда мы объявляем объект этого класса, он будет содержать эти две переменные. Эта часть опциональна, так как объекты могут быть также инициализированы конструктором.
Конструктор классов Python
#defining constructor def __init__(self, personName, personAge): self.name = personName self.age = personAge
Конструктор класса Python — это первая часть кода, которая выполняется при создании нового объекта. Прежде всего, конструктор можно использовать для помещения значений в переменные-члены. Также в конструкторе можно выводить сообщения, которые подтвердят, что объект был создан. Роль конструктора вы сможете оценить по достоинству, когда изучите наследование Python. Метод конструктора начинается с def __init__. После этого первым параметром должен быть self, так как он передает ссылку на экземпляр самого класса. Вы также можете добавить дополнительные параметры, как показано в примере выше. ‘personName’ and ‘personAge’ — это два параметра, которые будут отправлены в данном случае при создании нового объекта.
Методы класса Python
#defining python class methods def showName(self): print(self.name)
Методы объявляются следующим образом:
def method_name(self, parameter 1, parameter 2, …….) statements…….. return value (if required)
В ранее заданном примере мы видели, что метод showName() печатает значение «имя» этого объекта. Мы еще поговорим о методах Python как-нибудь в другой раз.
Объект класса Python
# Create an object of the class person1 = Person("Richard", 23) #Create another object of the same class person2 = Person("Anne", 30) #call member methods of the objects person1.showAge() person2.showName()
Способ создания объектов в python довольно прост. Сначала вы указываете имя нового объекта, за которым следует оператор присваивания и имя класса с параметрами (как определено в конструкторе). Помните, количество и тип параметров должны быть совместимы с параметрами, полученными в функции-конструкторе. Когда объект создан, можно вызвать методы-члены и получить доступ к атрибутам-членам (при условии, что они доступны).
#print the name of person1 by directly accessing the ‘name’ attribute print(person1.name)
Это все, что касается основ класса python. Если вы хотите больше узнать об объектно-ориентированных функциях Python, таких как наследование и полиморфизм, читайте следующие материалы:
- Наследование в Python 3
- Полиморфизм в классах Python 3
- Документация Python
Рекомендуем также постоянно практиковаться в написании кода самостоятельно.
Tags: Python