Рубрики
Без рубрики

init Python | Является ли __init__ in Python конструктором?

В python в нем можно использовать как конструктор. Конструктор вызывается, как только инициализируется объект того же класса.

Автор оригинала: Team Python Pool.

init Python | Является ли __init__ in Python конструктором?

Одним из наиболее широко используемых и наиболее непонятых является init в python. Python-это одна из объектно-ориентированных парадигм (все, что вы создаете, является объектом), а init в терминологии python известен как конструктор.

Не волнуйтесь, если вы не знаете, что такое объектно-ориентированное программирование, или вы не знаете о конструкторах. Мы постараемся объяснить с самых основ. Теперь давайте сначала разберемся в термине Объектно-ориентированное программирование.

Объектно-ориентированное программирование:

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

Класс в Python

В объектно-ориентированном программировании класс-это набор связанных элементов с одинаковыми или различными типами данных. Например, если бы у нас был класс студентов, переменные были бы названы, возраст, секция, пол и т. Д. А операции, которые могут выполняться объектами, – это calculate_marks().

Объект в Python

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

Давайте теперь разберемся в точной концепции и примерах использования __init__ в python.

Использование __init__ в Python

__init__ – это особый вид метода в python. Это так же, как конструктор в других объектно-ориентированных языках программирования, таких как c++ и java.

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

Синтаксис __init__ в Python

class example:
    # constructor initialized
    def __init__(self):
        print("__init__ called")

Вызов __init__ в python

Вы, должно быть, заметили параметр с именем “self” в init(). Какова здесь роль ключевого слова self? Мы не используем его в обычных функциях. Так почему же мы используем его здесь? Если этот вопрос приходит вам в голову, вы на правильном пути обучения. Теперь давайте разберемся, что это за ключевое слово self?

Личность:

Ключевое слово self является первым параметром каждого метода класса и используется для привязки атрибутов к заданным значениям параметров (аргументов). Большинство языков программирования используют этот тип ключевого слова в фоновом режиме, но это не относится к init в python.

Не вдаваясь в слишком много технических терминов, давайте разберемся с ключевым словом self на примере.

class student:
    def __init__(self,name,age):
       
        
("ashwini",20)("Sushant",34)
print(student1.name,student1.age)
print(student2.name,student2.age)
Output-
ashwini 20
Sushant 34

Здесь мы создали класс Student с тремя параметрами в функции init. Первый-это самость, которую мы поймем через некоторое время, следующий-имя и возраст. Обратите внимание, что мы сделали два объекта класса Student, а именно student1 и student2. При создании этих объектов мы должны передать такое же количество аргументов, как и в __init__. Обратите внимание, что мы не считаем себя здесь параметром. В обоих случаях имя и возраст объекта различны. Ключевое слово self-позволяет каждому объекту иметь разные значения, например, когда мы печатаем(student1.age), он печатает возраст студента 1, а если мы печатаем(student2.age), он печатает возраст 2-го студента. Если бы не было само-ключевого слова, это было бы невозможно.

Различные виды использования __init__ в Python

Мы можем использовать значения, инициализированные с помощью init, в других функциях. Давайте посмотрим, как.

class student:
  def __init__(self,name,age):
   
   

class student_marks:
  def __init__(self,name,english,maths,science,sst):
   
   
   
   
   

  def calculate_avg_marks(self):
   .english+self.maths+self.science+self.sst
   /4
    return avg_marks
("Ashwini",20,12,14,15)("Ashu",10,18,16,9)("Sonu",16,14,20,11)("Sushant",20,20,20,20)

print(student1.calculate_avg_marks())
print(student2.calculate_avg_marks())
print(student3.calculate_avg_marks())
print(student4.calculate_avg_marks())
Output-

15.25
13.25
15.25
20.0

Наследование __init__ в Python

Наследование-одно из важнейших понятий Объектно-ориентированного программирования. С помощью наследования один класс может наследовать свойства другого класса. Это помогает повторно использовать один и тот же код, чтобы нам не приходилось писать один и тот же тип кода снова и снова.

class Person():
  def __init__(self,name):
    print("Person Init called.")
   

class Student(Person):
  def __init__(self, name):
    Person.__init__(self, name)
    print("Student Init called.")
   
  def display(self):
    print("Student",self.name)

class Employee(Person):
  def __init__(self, name):
    Person.__init__(self, name)
    print("Employee Init called.")
   
  def display(self):
    print("Employee",self.name)
('Vicky')
student.display()('Vikas')
employee.display()
Output-

Person Init called.
Student Init called.
Student Vicky
Person Init called.
Employee Init called.
Employee Vikas

Обратите внимание, что здесь конструктор класса Person был вызван первым. Это происходит в большинстве объектно-ориентированных языков программирования, таких как href=”https://isocpp.org/”>c++ и java. Но в python это зависит от порядка, в котором мы вызвали функцию init в подклассе. Давайте рассмотрим пример. href=”https://isocpp.org/”>c++ и java. Но в python это зависит от порядка, в котором мы вызвали функцию init в подклассе. Давайте рассмотрим пример.

class Person():
    def __init__(self,name):
        print("Person Init called.")
       

class Student(Person):
    def __init__(self, name):
        print("Student Init called.")
       
        Person.__init__(self, name)

    def display(self):
        print("Student",self.name)


('Vicky')
student.display()
Output-

Student Init called.
Person Init called.
Student Vicky

Super() в python

В Python, если мы используем super() в подклассе, мы можем получить временный объект для суперкласса и с его помощью вызвать методы суперкласса в подклассе.

Программа для поиска площади кубоида и куба без супер()-

class Cuboid:
    def __init__(self, length, width,height):
       
       
       

    def total_surface_area(self):
        return 2*(self.length * self.width +self.width*self.height+self.length*self.height)

class Cube:
    def __init__(self, length):
       

    def total_surface_area(self):
        return 6*self.length * self.length
    (5,4,3)
print(cuboid.total_surface_area())(5)
print(cube.total_surface_area())
Output-
94
150

Теперь давайте используем super (), чтобы найти тот же вывод-

class Cuboid:
    def __init__(self, length, width,height):
       
       
       

    def total_surface_area(self):
        return 2*(self.length * self.width + self.width*self.height+self.length*self.height)

class Cube(Cuboid):
    def __init__(self, length):
        super().__init__(length,length,length)
(5,4,3)
print(cuboid.total_surface_area())(5)
cube.total_surface_area()
94
150

Обратите внимание, что мы должны писать меньший код, если используем super(). Даже если это был небольшой фрагмент кода с использованием super(), нам удалось уменьшить количество строк, представьте себе, если бы у нас было несколько классов, зависящих от одного класса, насколько меньше наш код стал бы с помощью super().

Надо Читать:

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python

Заключение __init__ в Python

Теперь мы знаем, насколько полезен __init__ в python. Есть много случаев, когда мы должны использовать его. Эти типы уникальных методов делают python отличным языком программирования.

Попробуйте запустить программы на вашей стороне и дайте мне знать, если у вас есть какие-либо вопросы.

Счастливого кодирования!