先决条件- 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
了解代码
在上面的示例中,创建了一个人名Nikhil。创建人时,“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
注意:要了解有关继承的更多信息,请单击此处。
注:本文由纯净天空筛选整理自nikhilaggarwal3大神的英文原创作品 __init__ in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。