weixin_45826427 2025-05-31 19:00 采纳率: 66.7%
浏览 8
已结题

Python问题,不懂就问

img


按照书上打的代码,不知道为什么总报错(请问一下,有没有uu指点一下)

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-05-31 19:01
    关注

    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。

    如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!

    Python问题:Car类实例化报错分析

    错误原因

    在类定义中,构造函数 __init__ 被错误写成了 _init_(单下划线),导致Python无法识别构造函数。当创建实例时,解释器认为Car()不接受参数,从而抛出TypeError

    修正代码

    class Car():
        def __init__(self, make, model, year):  # 关键修复:双下划线 __init__
            self.make = make
            self.model = model
            self.year = year
        
        def get_descriptive_name(self):
            long_name = str(self.year) + " " + self.make + " " + self.model
            return long_name.title()
    
    
    my_new_car = Car("audi", "a4", 2016)  # 实例化成功
    print(my_new_car.get_descriptive_name())  # 输出:2016 Audi A4
    

    错误排查流程

    graph TD
        A[报错 TypeError: Car() takes no arguments] --> B{检查构造函数}
        B --> C[查看 __init__ 拼写]
        C --> D{是否为双下划线?}
        D -->|否| E[修正为 __init__]
        D -->|是| F[检查参数传递]
        E --> G[问题解决]
        F --> G
    

    常见陷阱

    1. 下划线数量:构造函数必须是 __init__(两边各两个下划线)
    2. 中英文符号:原代码使用了中文引号 ,需替换为英文 "
    3. 缩进错误:类方法必须缩进(原代码缩进正常)

    验证结果

    执行修正后代码将输出:

    2016 Audi A4
    

    建议:使用IDE(如PyCharm/VSCode)编写代码,可自动检测此类语法错误。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月31日