You are currently viewing __init__ in Python

__init__ in Python

Всякий раз, когда объектно-ориентированное программирование выполняется на Python, мы в основном сталкиваемся __init__ с методом, который мы обычно не до конца понимаем. В этой статье объясняется основная концепция __init__ , но прежде чем понять __init__, необходимы некоторые предварительные условия.

__init__ Метод аналогичен конструкторам в C++ и Java. Конструкторы используются для инициализации состояния объекта. Задача конструкторов состоит в инициализации(присвоении значений) членам данных класса при создании объекта класса. Как и методы, конструктор также содержит коллекцию инструкций(т. е. инструкций), которые выполняются во время создания объекта. Он запускается, как только создается экземпляр объекта класса. Этот метод полезен для выполнения любой инициализации, которую вы хотите выполнить с вашим объектом.

Пример:

# A Sample class with init method
class Person:
	
	# init method or constructor
	def __init__(self, name):
		self.name = name
	
	# Sample Method
	def say_hi(self):
		print('Hello, my name is', self.name)
	
p = Person('Nikhil')
p.say_hi()

Выход:

Hello, my name is Nikhil

Понимание кода

В приведенном выше примере создается имя человека Нихил. При создании человека “Нихил” передается в качестве аргумента, этот аргумент будет передан __init__ метод инициализации объекта. Ключевое слово self представляет экземпляр класса и связывает атрибуты с заданными аргументами. Аналогично, многие объекты класса Person могут быть созданы путем передачи различных имен в качестве аргументов.

Пример:

# A Sample class with init method
class Person:
	
	# init method or constructor
	def __init__(self, name):
		self.name = name
	
	# Sample Method
	def say_hi(self):
		print('Hello, my name is', self.name)

# Creating different objects	
p1 = Person('Nikhil')
p2 = Person('Abhinav')
p3 = Person('Anshul')

p1.say_hi()
p2.say_hi()
p3.say_hi()

Выход:

Hello, my name is Nikhil
Hello, my name is Abhinav
Hello, my name is Anshul

__init__  с наследованием

Наследование это способность одного класса выводить или наследовать свойства из какого-либо другого класса. Давайте рассмотрим приведенный ниже пример, чтобы увидеть, как __init__ работает в наследовании.

# Python program to
# demonstrate init with
# inheritance

class A(object):
	def __init__(self, something):
		print("A init called")
		self.something = something
		

class B(A):
	def __init__(self, something):
		# Calling init of parent class
		A.__init__(self, something)
		print("B init called")
		self.something = something
		
obj = B("Something")

Выход:

A init called B init called 

Итак, сначала вызывается конструктор родительского класса. Но в Python необязательно, чтобы конструктор родительского класса всегда вызывался первым. Порядок, в котором метод __init__ вызывается для родительского или дочернего класса, может быть изменен. Это можно просто сделать, вызвав конструктор родительского класса после тела конструктора дочернего класса.

Пример:

# Python program to
# demonstrate init with
# inheritance

class A(object):
	def __init__(self, something):
		print("A init called")
		self.something = something
		

class B(A):
	def __init__(self, something):
		print("B init called")
		self.something = something
		# Calling init of parent class
		A.__init__(self, something)
		
obj = B("Something")

Выход:

B init called
A init called

Примечание: Чтобы узнать больше о наследовании кликните сюда.