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

Python类构造函数默认参数语法错误排查求助

问题排查与解决方案

针对你遇到的本地语法报错、在线解释器正常运行的问题,以及需要确保name参数为字符串类型的需求,整理如下排查和优化方案:

可能的报错原因

  • Python版本不兼容:代码中使用的name: str这类类型注解语法是Python 3.5及以上版本才支持的特性。如果你的本地Python版本是3.4或更早,解释器会将类型注解识别为语法错误,且报错行号可能出现偏移(实际错误在类型注解行,但提示到第5行)。
  • 报错行号偏移:部分情况下,解释器的报错行号会因编码、注释或前置语法问题出现偏差,实际错误点可能在构造函数的参数定义行,而非提示的第5行。

代码优化与校验补充

目前代码未对name的字符串类型做校验,添加对应断言即可满足需求,同时修正注释的小语法问题:

class Item: 
    def __init__(self, name: str, price: float, quantity=5):
        # Run validations on received arguments
        assert isinstance(name, str), f"Name {name} must be a string!"
        assert price >= 0, f"Price {price} is not greater than or equal to 0!"
        assert quantity >= 0, f"Quantity {quantity} is not greater than or equal to 0!"

验证步骤

  1. 打开终端执行python --version(或python3 --version),确认本地Python版本在3.5及以上,版本过低则升级Python即可解决语法报错问题。
  2. 测试实例化Item类,比如传入非字符串类型的name(如Item(123, 10.0)),会触发断言错误,确保参数类型符合要求。

内容的提问来源于stack exchange,提问作者SAHAUTSHA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:21:58