Объект Python — это просто набор данных (переменных) и методов (функций), которые воздействуют на эти данные. И класс — это план объекта. В отличие от процедурно-ориентированного программирования, где основной упор делается на функции, объектно-ориентированное программирование делает упор на объекты, а Python является объектно-ориентированным языком программирования.
Классы и объекты Python
К концу этого демонстрационного руководства вы сможете:
- определять, что это за класс.
- Определите класс в Python.
- Атрибуты и методы в Python.
- Создание объекта в Python.
- Доступ к объектным переменным
- Конструкторы в Python.
# Что такое класс в Python
Класс — это шаблон кода для создания объектов.
У объектов есть переменные-члены и методы.
В Python класс создается с помощью ключевого слова class.
Мы можем думайте о классе как об эскизе (прототипе) или чертеже дома. Он содержит все подробности о дверях, окнах, полах и т. Д. На основе этих описаний мы можем построить дом. Дом — это объект.
# Определение класса в Python
Мы определяем класс с помощью ключевого слова class.
Первая строка называется docstring и содержит краткое описание класса. Это не обязательно, но рекомендуется.
См. Следующий синтаксис.
class AppClass: '' 'Это строка документации' '' проход
Класс создает новое локальное пространство имен, в котором определены все его атрибуты. Атрибуты могут быть данными или функциями.
Как только мы определяем класс, создается новый объект класса с тем же именем. Этот объект класса позволяет нам получать доступ к различным атрибутам, а также создавать экземпляры новых объектов этого класса.
Самый простой класс может быть создан с использованием ключевого слова class. Например, давайте создадим простой пустой класс без функциональных возможностей.
# app.pyclass Netflix: passshows = Netflix () print (показывает)
См. Следующее вывод.
➜ pyt python3 app.py ➜ pyt
Давайте определим функцию и свойства внутри класса и получим доступ к функции и properties.
# app.pyclass StrangerThings: eleven = 11 def oneLiner (self): print ('Друзья не лгут') print (StrangerThings.eleven) print (StrangerThings.oneLiner)
См. следующий вывод.
➜ pyt python3 app.py11 ➜ pyt
# Атрибуты и методы в классе
В приведенном выше коде мы определили атрибуты и методы.
Класс сам по себе не имеет использовать, если с ним не связаны какие-либо функции.
Функциональные возможности определяются установкой атрибутов, которые действуют как контейнеры для данных и функций, связанных с этими атрибутами. Эти функции называются методами.
Давайте определим один атрибут класса.
# app.pyclass StrangerThings: age = 11print (StrangerThings.age)
В приведенном выше коде возраст является атрибутом класса, значение которого равно 11. Итак, он будет выводить 11. Теперь давайте определим метод.
# app.pyclass StrangerThings: item = 'Eggos' def food (self): print (self.item) print (StrangerThings.food)
В приведенном выше примере кода мы определили один метод под названием food , а также определил один атрибут с именем item, значением которого является Eggos.
Если нам нужно возвращаемое значение функции, то мы должны определить один объект и вызвать метод для этого чтобы получить значение, возвращаемое этой функцией.
# Создание объекта в Python
Мы увидели, что объект класса может может использоваться для доступа ко многим различным атрибутам.
Его также можно использовать для создания новых экземпляров объекта (создания экземпляров) этого класса. Процедура создания объекта аналогична вызову функции.
См. Следующий синтаксис того, как мы можем создать экземпляр.
object = Class ()
Приведенный выше код создаст новый объект-экземпляр с именем object. Мы можем получить доступ к атрибутам объектов, используя префикс имени объекта.
Атрибуты могут быть данными или методами. Метод объекта — это соответствующие функции этого класса. Любой функциональный объект, который является атрибутом класса, определяет метод для объектов этого класса.
Это означает, что, поскольку Class.func является функциональным объектом (атрибутом класса), object.func будет объект метода. Теперь посмотрим на следующий пример кода.
# app.pyclass StrangerThings: item = 'Eggos' def food (self): print (self.item) st = StrangerThings () st.food ()
См. следующий результат.
➜ pyt python3 app.pyEggos➜ pyt
Возможно, вы заметили Параметр self в определении функции внутри класса, но мы вызвали метод напрямую как st.food () без всяких аргументов. Он все еще работал.
Это потому, что всякий раз, когда объект вызывает свой метод, сам объект передается в качестве первого аргумента. Итак, st.food () переводится в StrangerThings.food .
#Accessing Object Variables
Мы можем получить доступ к переменной, используя только что созданный объект, используя следующий код.
# app.pyclass StrangerThings: def __init __ (self, name, age ): self.name = name self.age = agest = StrangerThings ("Одиннадцать", 11) mbb = StrangerThings ("Милли", 15) print (st.name) print (st.age) print (mbb.name) print (mbb.name) print (mbb.age)
См. следующий вывод.
➜ приложение pyt python3. pyEleven11Millie15➜ pyt
# Конструкторы в Python
Функции класса, начинающиеся с двойного подчеркивания (__), называются специальными функциями. поскольку они имеют особое значение.
Особый интерес представляет функция __ init __ () . Эта специальная функция вызывается всякий раз, когда создается новый объект этого класса.
Этот тип функции также называется конструкторами в объектно-ориентированном программировании (ООП). Обычно мы используем его для инициализации всех переменных.
Рассмотрим следующий пример для инициализации атрибутов класса StrangerThings.
# app.pyclass StrangerThings: def __init __ (self, name, age): self.name = name self.age = age def display (self): print ("Возраст:% d nName:% s"% (self.age, self.name)) st = StrangerThings (" Одиннадцать ", 11) mbb = StrangerThings (" Millie ", 15) st.display () mbb.display ()
См. Следующий вывод.
➜ pyt python3 app.py Возраст: 11 Имя: Одиннадцать Возраст: 15 Имя: Millie➜ pyt
Наконец, пример классов и объектов Python завершен.