学科分类
目录
基础

构造方法

每个类都有一个默认的__init__()方法,如果在定义类时显式地定义了__init__()方法,则创建对象时Python解释器会调用显式定义的__init__()方法;如果定义类时没有显式定义__init__()方法,那么Python解释器会调用默认的__init__()方法。

__init__()方法按照参数的有无(self除外)可分为有参构造方法和无参构造方法,无参构造方法中可以为属性设置初始值,此时使用该方法创建的所有对象都具有相同的初始值。若希望每次创建的对象都有不同的初始值,则可以使用有参构造方法实现。

例如,定义一个类Information,在该类中显式地定义一个带有3个参数的__init__()方法和info()方法,示例代码如下:

class Inforamtion(object):
    def __init__(self, name, sex):     # 有参构造方法
        self.name = name               # 添加属性name
        self.sex = sex                 # 添加属性sex
    def info(self):
        print(f'姓名:{self.name}')
        print(f'性别:{self.sex}')

上述代码中首先定义了一个包含三个参数的Information类,然后通过参数name与sex为属性name和sex进行赋值,最后在info()方法中访问属性name和sex的值。

因为定义的构造方法中需要接收两个实际参数,所以在实例化Information类对象时需要传入两个参数,示例代码如下:

infomation = Inforamtion('李婉', '女')
infomation.info()

运行代码,结果如下所示:

姓名:李婉
性别:女

注意:

前面在类中定义的属性是类属性,可以通过对象或类进行访问;在构造方法中定义的属性是实例属性,只能通过对象进行访问。

点击此处
隐藏目录