欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Python的一个坑点

Python的一个坑点

2025/8/24 8:08:14 来源:https://blog.csdn.net/jm999999999/article/details/145657867  浏览:    关键词:Python的一个坑点

打卡MIT6.100L(17/26)

一、背景

写一个Vehicle类,一个Vehicle有以下属性:

轮子的数量

乘客数量

颜色

最大载客数: 5

class Vehicle(object):def __init__(self, w, o, c):"""交通工具有以下属性:轮子的数量(int)、乘客数量(int)、颜色(str)最大载客数: 5"""self.wheels = wself.occupants = oself.color = c

二、坑点

在上面的 Vehicle 类代码基础上进行扩展。
Vehicle 类创建另一个名为 add_n_occupants 的方法,该方法接受一个整数 n 作为参数。
当调用该方法时,使其在增加乘员时进行以下检查:

  • 如果增加后的乘员数量超过 max_occupancy,则不执行增加操作。
  • 抛出 ValueError 异常,并提供适当的错误信息。

如果增加后的乘员数量不超过 max_occupancyself ,乘员数量增加 n,并返回增加后的总乘员数。

 

如果这么写的话。。。。。。

    def add_n_occupants(self, n):self.occupants += nif self.occupants > self.max_occupancy:raise ValueError("too many man")else:return self.occupantsv2 = Vehicle(4, 3, "blue")
print(v2.add_n_occupants(3))

在执行代码后,虽然会报错,但是实际上,v2也依然修改成了6,因为他的值已经被修改了,只是在代码逻辑上抛出报错。

所以我们可以多声明一个变量,来存储这个过程。

    def add_n_occupants(self, n):new_occ = self.occ + nif new_occ > self.max_occ:raise ValueError("exceeded max occupancy")else:self.occ = new_occreturn self.occ

这样不仅按题目要求报错,occ也没有改变他的值。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词