You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 23:06:22