更新时间:2021-07-02 来源:黑马程序员 浏览量:
每个类都有一个默认的__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()
运行代码,结果如下所示:
姓名:李婉 性别:女
注意:
前面在类中定义的属性是类属性,可以通过对象或类进行访问;在构造方法中定义的属性是实例属性,只能通过对象进行访问。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19