实验七 Python面向对象程序设计

1478 篇文章

已下架不支持订阅

本文介绍了Python面向对象编程的四个实战关卡,包括Stack类的实现、圆类及其派生类、Shape抽象类和异常处理。通过定义和使用类,如Stack的push、pop等方法,实现进制转换和几何形状的计算。同时,学习了类的继承、抽象类的使用以及异常处理的机制。

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

第1关:定义Stack类及应用

任务描述
本关任务:编写一个Stack类,并解决进制计算问题。

相关知识
为了完成本关任务,你需要掌握:1、类的定义,2、实例变量的定义,3、实例方法的定义,4、私有访问控制

类的定义
Python中定义类的语法格式如下:
class 类名:
[类变量]
[def init(self,paramers):]
[def 函数名(self,…)]

实例变量的定义
Python中,实例变量的定义如下:
self.变量名
只要以self定义的变量都是实例变量,该变量可以定义在任何实例方法内。
实例变量的初始化最好通过定义__init__或__new__构造方法来进行。

实例方法的定义
实例方法一般都以self作为第一个参数,必须和具体的对象实例进行绑定才能访问。即必须由对象调用,执行时自动将调用该方法的对象赋值给self。

私有访问控制
如果要实现真正的封装,让实例变量或方法成为私有的,则需要在变量名和方法名前加双下划线。如__valuneNmae,或__functionName。

编程要求
根据提示,在右侧编辑器补充代码

已下架不支持订阅

### 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]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ssaty.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值