赞
赏
__init__
构造函数在创建 类 时,我们可以手动为类添加一个 __init__()
方法,该方法是一个特殊的类实例方法,称为构造方法(或构造函数)。
构造方法用于创建对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它。
__init__
构造函数参数Python 的 __init__
函数,第一个参数是固定的 self,其他参数可以有 0 个或者任意多个,如果,我们在 __init__
方法里设置了参数,那么我们在实例化类对象的时候,必须要传入相对应的参数。
Python 的构造函数,跟普通的 函数 一样,也可以设置 默认参数,如果设置了默认参数,那么在实例话实例时,可以不传该参数,而使用默认值。
def __init__(self,...):
pass
Python 构造方法的名字为 __init__
,其中第一个参数一定为 self,其他可以有 0 个或者任意多个 参数。
此方法的方法名中,开头和结尾各有两个连续的下划线,这是构造函数的固定写法,在 Python 中,以两个连续的下划线开始和两个连续的下划线结尾的函数都有特殊的含义。
为类添加 __init__
构造函数
print("嗨客网(www.haicoder.net)")
class Student:
def __init__(self):
print("Call init")
def sayHello(self):
print("Hello, HaiCoder")
stu = Student()
stu2 = Student()
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个 __init__
方法,即构造函数和一个 sayHello 方法 ,最后,我们创建了两个 Student 类的实例。
我们看到,我们没有显式调用 __init__
函数,但程序输出了两次 Call init
,即我们每创建一次对象,系统会自动为我们调用一次 __init__
构造方法。
构造函数可以接受参数
print("嗨客网(www.haicoder.net)")
class Student:
def __init__(self, name, age, score):
print("Name =", name, "Age =", age, "Score =", score)
def sayHello(self):
print("Hello, HaiCoder")
stu = Student("HaiCoder", 18, 99.8)
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个 __init__
方法,__init__
方法接受四个参数,第一个是固定的 self 参数,接着三个参数,分别为 name、age 和 score
最后,我们在创建 Student 类的实例的时候,传入了除 self 以外的三个参数,我们看到,在 __init__
方法里面,可以获取到我们传入的三个参数。
如果构造函数有参数,那么实例化时必须传入对应的参数
print("嗨客网(www.haicoder.net)")
class Student:
def __init__(self, name, age):
print("Name =", name, "Age =", age)
def sayHello(self):
print("Hello, HaiCoder")
stu = Student()
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个 __init__
方法,__init__
方法接受三个参数。
最后,我们在创建 Student 类的实例的时候,没有传入任何的参数,此时,程序报错,即,如果我们在构造函数里面设置了参数,那么我们在创建类实例时必须传入设置的参数。
Python 类的构造函数支持默认参数
print("嗨客网(www.haicoder.net)")
class Student:
def __init__(self, name, age=99):
print("Name =", name, "Age =", age)
def sayHello(self):
print("Hello, HaiCoder")
stu = Student("haicoder")
程序运行后,控制台输出如下:
我们创建了一个类 Student,接着,我们为该类添加了一个 __init__
方法,__init__
方法的第三个参数接受一个默认值。
最后,我们在创建 Student 类的实例的时候,只传入了一个参数,age 参数使用默认值。
__init__
构造函数总结Python 的 __init__
函数,第一个参数是固定的 self,其他参数可以有 0 个或者任意多个,如果,我们在 __init__
方法里设置了参数,那么我们在实例化类对象的时候,必须要传入相对应的参数。
Python 的构造函数,跟普通的函数一样,也可以设置默认参数,如果设置了默认参数,那么在实例话实例时,可以不传该参数,而使用默认值。Python 构造方法定义:
def __init__(self,...):
pass