首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试笔记|Python编程基础|构造函数

“动动小手,点点关注呗~”

世间所有的安排都有它的道理,好的事,给你快乐和回忆,坏的事,给你经验和教训。得之坦然,失之淡然,心若计较,处处都有怨言,心若放宽,时时都是晴天。

在Python面向对象编程中,构造函数是一个特殊且关键的概念。它能够在创建类的实例时,自动执行一些初始化操作,赋予实例初始状态和属性值,让对象从诞生起就具备可用的属性和状态。

一、构造函数基础:init 方法

Python中,构造函数就是 __init__ 方法。这个方法定义在类里,名字固定,前后各有两条下划线。每当使用类创建新对象时,__init__ 方法都会自动被调用。

(一)简单示例

(二)代码含义解析

1. 类定义:class Person: 定义了一个名为 Person 的类,它是一个新的对象类型。

2. 构造函数定义:def __init__(self): 定义了 Person 类的构造函数。self 代表类的实例本身,通过它可以访问和初始化实例的属性。

3. 属性初始化:在 __init__ 方法里,self.name = "John" 和 self.age = 30 分别为 Person 实例创建并初始化了 name 和 age 两个属性,并赋予初始值。

4. 实例创建与属性访问:person = Person() 创建了 Person 类的一个实例。然后通过 person.name 和 person.age 访问实例的属性,输出属性值。

(三)运行结果

运行上述代码,会输出:

二、带参数的构造函数

实际应用中,构造函数通常需要接受参数,以便根据不同需求初始化对象属性。

(一)示例代码

(二)代码含义解析

1. 构造函数参数:def __init__(self, width, height): 中,width 和 height 是构造函数的参数。创建 Rectangle 实例时,需要传入这两个参数值。

2. 属性初始化:self.width = width 和 self.height = height 将传入的参数值赋给实例的 width 和 height 属性,完成属性初始化。

3. 多个实例创建:rect1 = Rectangle(5, 3) 和 rect2 = Rectangle(10, 7) 创建了两个不同的 Rectangle 实例,每个实例有各自不同的 width 和 height 属性值。

(三)运行结果

运行代码,输出结果为:

三、构造函数中的默认参数

为了让构造函数更灵活,可以给参数设置默认值。当创建实例时不传入对应参数,就会使用默认值。

(一)示例代码

(二)代码含义解析

1. 默认参数设置:def __init__(self, radius=1.0): 中,radius 参数有默认值 1.0。

2. 实例创建:circle1 = Circle() 创建实例时未传入 radius 参数,circle1 的 radius 属性会使用默认值 1.0;circle2 = Circle(5.0) 创建实例时传入了 radius 参数值 5.0,circle2 的 radius 属性就被初始化为 5.0。

(三)运行结果

运行代码后,输出:

四、调用父类构造函数

在继承关系中,子类构造函数有时需要调用父类构造函数,完成父类部分的初始化工作,使用 super() 函数实现。

(一)示例代码

(二)代码含义解析

1. 父类构造函数:Animal 类的构造函数 __init__(self, name) 初始化了 name 属性。

2. 子类构造函数:Dog 类继承自 Animal 类,其构造函数 __init__(self, name, breed) 中,super().__init__(name) 调用了父类 Animal 的构造函数,完成 name 属性的初始化。然后再初始化子类特有的 breed 属性。

(三)运行结果

运行代码,输出:

构造函数是Python面向对象编程的基石,通过合理利用构造函数的特性,如参数传递、默认参数和父类构造函数调用,可以创建出灵活且功能强大的对象。希望本文内容能帮助你深入理解并熟练运用Python构造函数,提升编程能力。

“动动小手,点点关注呗~”🫰

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OINVsHGa4xqeSgJxtVPjE17A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券