python面向对象程序设计实验_实验七 面向对象程序设计

本文介绍了Python面向对象编程的实验,包括类和对象的定义、构造方法、属性与方法的使用,特别是self的概念,以及继承、多态、封装等核心概念。还探讨了运算符重载、静态方法和类方法,并提供了多个实验题目来巩固这些知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验七 面向对象程序设计

一、实验目的与要求

1、了解面向对象编程思想,掌握类和对象的定义和使用。

2、熟悉self的使用技巧,掌握构造方法的使用。

3、了解如何使用封装保护属性,掌握单继承和多继承的使用。

4、掌握类属性和实例属性的使用,熟悉类方法和静态方法的使用技巧。

二、实验原理

在程序中使用对象来映射现实中的事物,使用对象间的关系来描述事物之间的联系,这种思想就是面向对象。面向对象编程有两个非常重要的概念:类和对象。对象是面向对象编程的核心。具有相似特征和行为的事物的集合统称为类,对象是根据类创建的,一个类可以对应多个对象。类是由3部分组成的:(1)类的名称:类名,首字母必须大写,比如Person;(2)类的属性:一组数据,比如性别;(3)类的方法:允许进行操作的方法,比如说话。使用class关键字来声明一个类,基本格式如下:

class 类名:

类的属性

类的方法

根据类创建对象的语法格式如下:

对象名 = 类名()

要想给对象添加属性,可以通过如下方式:

对象名.新的属性名 = 值

构造方法指的是__init__方法。当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作。当删除一个对象来释放类所占用资源的时候,Python解释器默认会调用另外一个方法,这个方法就是__del__( )方法。__del__方法被称为析构方法。

在方法的列表中,第1个参数永远都是self。self的字面意思是自己,我们可以把它当做C++里面的this指针理解,表示的是对象自身。当某个对象调用方法的时候,Python解释器会把这个对象作为第1个参数传给self,开发者只需要传递后面的参数就可以了。

运算符重载是通过实现特定的方法使类的实例对象支持Python的各种内置操作。例如:+运算符是类里提供的__add__这个函数,当调用+实现加法运算的时候,实际上是调用了__add__方法。加法运算是通过调用__add__方法完成重载的,当两个实例对象执行加法运算时,自动调用__add__方法。跟索引相关的重载方法包括如下3

### Python面向对象编程 实验 教程 #### 方法中的`self`参数 在Python面向对象程序设计中,在类的方法定义里,第一个参数总是`self`。这个参数代表实例本身,可以将其视为C++里的`this`指针[^1]。 ```python class MyClass: def my_method(self, arg1, arg2): # self is the first parameter pass ``` 当创建的对象调用了该方法时,解释器自动将此对象作为首个实参传递给`self`,因此开发人员只需关注后续参数即可。 #### 类继承与部分重写方法 对于涉及类继承的情况,子类可以从父类那里继承属性和行为,并能够覆盖或扩展这些功能。下面是一个简单的例子展示了如何实现这一点: ```python # 定义基类 (parent class) class ParentClass: def __init__(self): self.value = "Parent" def show_value(self): print(f"The value from parent: {self.value}") # 继承自ParentClass的新类 class ChildClass(ParentClass): def __init__(self): super().__init__() # 初始化父类成员变量 self.child_value = "Child" # 部分改写show_value()函数来展示更多细节 def show_value(self): super().show_value() print(f"And also has child's own attribute: {self.child_value}") ``` 这段代码说明了怎样通过使用`super()`关键字访问并执行来自父类的方法,同时也允许我们修改特定的行为以适应新的需求[^2]。 #### 解决`AttributeError` 如果遇到像`AttributeError: 'BookInstance' object has no attribute '__author'`这样的错误提示,则意味着尝试访问未被正确定义为公共属性的私有属性(`__author`)。为了避免此类问题的发生,应该确保所使用的属性名正确无误,并且遵循命名约定——即不以前缀双下划线开头除非确实意图隐藏某些数据成员[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值