Python定义Car类实例化对象及调用方法报错如何修复
问题修复方案
你的代码共存在3处错误,正好对应你遇到的三个异常现象:
- 构造方法拼写错误:Python类的实例构造方法固定为
__init__(双下划线包裹init),你误写为__int__(这是整数转换的魔术方法,和实例初始化无关)。这个错误直接导致实例化传参时,解释器找不到能接收参数的构造方法,触发"unexpected argument"报错,同时__speed等私有属性也不会被正确初始化。 - brake方法逻辑无效:你写的
self.__speed - + 5只是做了一次无赋值的临时运算,计算结果没有保存回实例属性,所以IDE提示"statement seems to have no effect",正确的减速逻辑应该是用减法赋值运算符-=。 - 未调用main函数:你仅定义了
main()函数,但没有写入口调用逻辑,Python不会自动执行自定义的main函数,这是代码运行无输出的核心原因之一。
修复后的完整可运行代码:
class Car: def __init__(self, year_model, make): self.__year_model = year_model self.__make = make self.__speed = 0 def accelerate(self): self.__speed += 5 def brake(self): self.__speed -= 5 def get_speed(self): return self.__speed def main(): my_car = Car("2022 Trailblazer", "Chevy") for i in range(5): my_car.accelerate() print(my_car.get_speed()) for i in range(5): my_car.brake() print(my_car.get_speed()) if __name__ == "__main__": main()
运行后会按预期输出:先逐次打印加速过程的速度5、10、15、20、25,再逐次打印减速过程的速度20、15、10、5、0。
内容的提问来源于stack exchange,提问作者Marni Velick
相关产品推荐
相关产品推荐

