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

Python创建类时如何指定__init__方法传入参数的具体类型

解决方案

Python为动态类型语言,语法层没有原生的参数类型强制校验规则,但你可以手动在__init__方法中添加校验逻辑,类型不匹配时主动抛出TypeError即可。另外注意你写的类中存在方法名ligne_225和实例属性重名的问题,会导致调用冲突,需要修改方法名避免覆盖。

无依赖手动校验实现(推荐)

import pandas as pd

class Poste_HTB_HTA:
    def __init__(self, ligne_225, data):
        # 校验ligne_225类型
        if not isinstance(ligne_225, list):
            raise TypeError(f"参数ligne_225要求为list类型,当前传入类型为{type(ligne_225).__name__}")
        # 校验data类型
        if not isinstance(data, pd.DataFrame):
            raise TypeError(f"参数data要求为pandas DataFrame类型,当前传入类型为{type(data).__name__}")
        
        self.ligne_225 = ligne_225
        self.data = data

    # 修改方法名避免和属性重名
    def get_ligne_225(self):
        return self.ligne_225

其他可选方案

  • 如果你只需要静态类型提示(用于IDE提醒、mypy静态检查,运行时不会抛出错误),可以直接加类型注解即可:
from typing import List
import pandas as pd

class Poste_HTB_HTA:
    def __init__(self, ligne_225: List, data: pd.DataFrame):
        self.ligne_225 = ligne_225
        self.data = data
  • 如果需要更简洁的运行时校验能力,可以引入pydantic库实现自动类型校验,无需手动写判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:54:03