Python ООП: Класс, Объект, Наследование и Конструктор

⚡ Умное резюме

Объектно-ориентированное программирование в Python Этот подход организует код вокруг классов и объектов, объединяя связанные данные и поведение. Он показывает, как определять классы, создавать объекты, применять наследование и инициализировать атрибуты с помощью конструкторов.

  • 🔘 План занятия: Класс объединяет связанные данные и методы в многократно используемый шаблон для создания объектов.
  • ☑️ Объекты: Объекты — это экземпляры класса, каждый из которых хранит свои собственные значения атрибутов.
  • Определение классов: Ключевое слово class, методы с отступами и параметр self определяют Python класса.
  • 🧬 Наследование: Производный класс наследует атрибуты и методы от базового класса и поддерживает множественное наследование.
  • 🇧🇷 Конструкторы: Метод __init__() инициализирует каждый новый объект предопределенными значениями.
  • 🤖 Актуальность ИИ: Библиотеки машинного обучения, такие как Python.Torслои и сети модели CH Python классов.

Python ООП: Класс, Объект, Наследование и Конструктор

ООП в Python

ООП в Python — это подход к программированию, который фокусируется на использовании объектов и классов так же, как и другие общие языки программирования. Объектами могут быть любые объекты реального мира. Python позволяет разработчикам разрабатывать приложения, используя подход ООП, уделяя особое внимание возможности повторного использования кода. Очень легко создавать классы и объекты в Python.

Что такое класс?

Класс в Python является логической группойping Это позволяет создавать структуры данных и функций, содержащие произвольное содержимое и, следовательно, легкодоступные.

Например, любой сотрудник банка, желающий получить информацию о клиенте в Интернете, должен перейти на класс клиентагде будут перечислены все атрибуты, такие как детали транзакций, сведения о снятии и внесении средств, непогашенная задолженность и т. д.

Как определить Python классов

Чтобы определить класс, вам необходимо учитывать следующие моменты

Шаг 1) In Python, классы определяются "Класс" ключевое слово

class myClass():

Шаг 2) Внутри классов вы можете определять функции или методы, являющиеся частью этого класса.

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Здесь мы определили метод 1, который выводит "Guru99 «.
  • Другой метод, который мы определили, — это метод2, который печатает «Тестирование программного обеспечения» + SomeString. SomeString — это переменная, предоставляемая вызывающим методом.

Шаг 3) Все в классе имеет отступ, как и код в функции, цикле, операторе if и т. д. Все, что не имеет отступов, не находится в классе.

определять Python классов

ЗАМЕТКА: Об использовании слова «self» в Python

  • Аргумент self относится к самому объекту. Отсюда и использование слова self. Таким образом, внутри этого метода self будет относиться к конкретному экземпляру этого объекта, над которым выполняется операция.
  • Self — это имя, которое по соглашению предпочитает Pythons для указания первого параметра методов экземпляра в Python, Это часть Python синтаксис для доступа к членам объектов

Шаг 4) Чтобы сделать объект класса

c = myClass()

Шаг 5) Чтобы вызвать метод в классе

c.method1()
    c.method2(" Testing is fun")
  • Обратите внимание, что при вызове метода 1 или метода 2 нам не нужно указывать ключевое слово self. Это автоматически обрабатывается. Python время выполнения.
  • Python среда выполнения будет передавать значение «self», когда вы вызываете метод экземпляра, независимо от того, предоставляете ли вы его намеренно или нет.
  • Вам просто нужно заботиться о несамостоятельных аргументах

Шаг 6) Вот полный код

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Как работает наследование

Наследование — это функция, используемая в объектно-ориентированном программировании; это относится к определению нового класса с меньшими изменениями или без изменений существующего класса. Новый класс называется производный класс и от того, что он наследует, называется Использование темпера с изогнутым основанием. Python поддерживает наследование; он также поддерживает множественное наследство. Класс может наследовать атрибуты и методы поведения от другого класса, называемого подклассом или классом-наследником.

Как работает наследование в Python

Python Синтаксис наследования

class DerivedClass(BaseClass):
    body_of_derived_class

Шаг 1) Запустите следующий код

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Обратите внимание, что в дочернем классе метод method1 не определен, но он наследуется от родительского класса myClass. Вывод: «Guru99 «.

Шаг 2) Раскомментируйте строки № 8 и 10. Запустите код.

Теперь метод 1 определен в дочернем классе, и вывод «Метод дочернего класса1» отображается правильно.

Шаг 3) Раскомментируйте строку №9. Запустите код

Вы можете вызвать метод родительского класса, используя синтаксис

ParentClassName.MethodName(self)

В нашем случае мы вызываем метод myClass.method1(self) и GuruЧисло 99 напечатано, как и ожидалось.

Шаг 4) Раскомментируйте строку №19. Запустите код.

Вызывается метод 2 дочернего класса и выводится «метод childClass2», как и ожидалось.

Python Конструкторы

Конструктор — это функция класса, которая создает экземпляр объекта для предопределенных значений.

Начинается с двойного подчеркивания (_). Это метод __init__()

В приведенном ниже примере мы берем имя пользователя, используя конструктор.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Результат будет:

Добро пожаловать в Guru99, Алекс

Python 2 Пример

Вышеуказанные коды Python 3 примера. Если вы хотите обкатать Python 2 пожалуйста, рассмотрите следующий код.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Узнайте наш следующий урок о Полиморфизм в Python

Часто задаваемые вопросы (FAQ)

Класс — это шаблон, определяющий атрибуты и методы, а объект — это конкретный экземпляр, созданный на основе этого класса. Один класс может создавать множество объектов, каждый из которых...ping собственные данные.

Python Объектно-ориентированное программирование основывается на четырех столпах: инкапсуляции (объединении данных с методами) и абстракции.tracполиморфизм (скрытие сложности), наследование (повторное использование базового класса) и полиморфизм (один интерфейс, много форм).

Переменные класса объявляются внутри тела класса и используются каждым экземпляром. Переменные экземпляра присваиваются внутри метода __init__ с помощью self и принадлежат только одному объекту.

Функция super() возвращает прокси-объект родительского класса, позволяя дочернему классу вызывать методы или конструктор родительского класса, не указывая его имя напрямую. Часто её записывают как super().__init__() для инициализации унаследованных атрибутов.

Инкапсуляция ограничивает прямой доступ к внутренним данным объекта. PythonДобавьте к атрибуту префикс в виде одинарного подчеркивания (_name) для защиты от копирования (protected) или двойного подчеркивания (__name) для искажения имен.

Да. А Python Класс может наследовать от нескольких родителей, например, класс Child(A, B). Python Устраняет повторяющиеся имена методов, используя порядок разрешения методов (MRO), который проверяется с помощью метода mro().

Объектно-ориентированное программирование является центральным элементом фреймворков для искусственного интеллекта и машинного обучения. Такие библиотеки, как Python, могут быть полезны.TorБиблиотеки ch и scikit-learn моделируют сети, слои и оценщики как классы, поэтому вы можете создавать их подклассы и повторно использовать для построения моделей.

Да. GitHub Copilot и ИИ-помощники генерируют Python Классы, конструкторы и наследование — всё это можно узнать из короткого запроса. Они автоматизируют повторяющийся шаблонный код, хотя для корректности логики следует проверить вывод.

Подведем итог этой публикации следующим образом: