Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试笔记|Python编程基础|面向对象:类

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

执念太多的人,是行不了万里路的,已经淋过雨了,有没有伞都没关系。

面向对象编程基础概念

在Python中,面向对象编程(OOP)是一种强大的编程范式,它围绕“对象”来组织代码。类(Class)是OOP的核心概念之一,它是一个创建对象的模板,定义了对象的属性(数据)和方法(行为)。可以将类看作是一种自定义的数据类型,而对象则是该类型的实例。

类的定义与基本结构

在Python中,使用class关键字来定义类。下面是一个简单的类定义示例:

在这个例子中:

• class Dog: 定义了一个名为Dog的类。

• __init__方法是一个特殊的方法,也称为构造函数。当创建类的实例时,这个方法会自动被调用。它的第一个参数self是一个指向实例本身的引用,通过它可以访问和初始化实例的属性。self.name = name和self.age = age将传入的参数name和age赋值给实例的属性name和age。

• bark方法是一个普通的实例方法。它也接受self作为第一个参数,用于访问实例的属性,并打印出狗的叫声以及年龄信息。

创建类的实例

定义好类后,就可以创建该类的实例(对象)了。

运行结果:

在这段代码中,my_dog = Dog("Buddy", 3)创建了Dog类的一个实例my_dog,并传入了名字Buddy和年龄3。然后通过my_dog.bark()调用bark方法,输出狗的叫声和年龄信息。

类的属性和方法

实例属性与类属性

1. 实例属性:每个实例都有自己独立的属性值,就像前面例子中的name和age,它们是在__init__方法中通过self来定义和赋值的。

2. 类属性:类属性是属于类本身的,所有实例共享这个属性。下面是一个包含类属性的例子:

运行结果:

在这个例子中,species是一个类属性,所有Dog类的实例都共享这个属性值。

实例方法、类方法与静态方法

1. 实例方法:前面已经介绍过,实例方法的第一个参数是self,用于访问实例的属性和方法。

2. 类方法:使用@classmethod装饰器定义,它的第一个参数通常命名为cls,代表类本身。类方法可以访问和修改类属性,也可以创建类的实例。

运行结果(假设当前年份是2024):

在这个例子中,from_birth_year是一个类方法,它根据出生年份计算狗的年龄,并创建一个新的Dog实例。

3. 静态方法:使用@staticmethod装饰器定义,它不需要传入self或cls参数,就像一个普通的函数,只是逻辑上属于类。

运行结果:

在这个MathUtils类中,add和multiply是静态方法,它们不依赖于类的实例或类本身的状态,只是提供了一些数学运算的功能。

继承与多态

继承

继承允许创建一个新类(子类),它继承了另一个类(父类)的属性和方法。子类可以扩展或重写父类的方法。

运行结果:

在这个例子中,Dog和Cat类继承自Animal类。它们重写了speak方法,以提供各自特定的行为。

多态

多态是指同一个方法调用在不同的对象上会产生不同的行为。在上面的继承例子中就体现了多态,虽然my_dog.speak()和my_cat.speak()调用的是同一个方法名speak,但由于对象类型不同,产生了不同的输出结果。

总结

通过以上内容,我们深入了解了Python中面向对象编程的类相关知识,包括类的定义、属性和方法、实例创建、继承和多态等核心概念。这些知识是构建大型、可维护和可扩展Python程序的基础,希望读者通过不断实践,能够熟练运用面向对象编程的技巧来解决各种编程问题。

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

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
首页
学习
活动
专区
圈层
工具
MCP广场