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

Python调用自定义read_csv方法报TypeError参数数量不符怎么解决

问题根源

你定义的read_csv是类的实例方法,但是函数签名没有声明接收实例自身的self参数。
调用self.booking.read_csv(path)的时候,Python会自动将booking实例作为第一个位置参数传入方法,加上你主动传的path,实际一共传入了2个位置参数,但你写的函数只支持0到1个参数,所以触发类型错误。

解决方法

把函数定义修改为:

from typing import List, Optional
from pathlib import Path
import csv

def read_csv(self, path: Optional[str] = None) -> List[List[str]]:
    lead = Path(__file__).parent / f'../data/{path}'
    entries = []

    print('Reading dataset...')
    with open(lead, 'r') as csvfile:
        video_reader = csv.reader(csvfile)
        for row in video_reader:
            entries.append(row)
    # 原代码返回print(entries)会得到None,不符合你声明的返回值类型,修改为直接返回entries
    return entries

其他需要修正的潜在问题

  • 原函数返回return print(entries):print函数的返回值是None,和你声明的List[List]返回类型不匹配,调用方接收结果会拿到空值
  • 没有做path为空的校验:如果调用时不传path参数,path为None,拼接路径时会抛出字符串拼接异常
  • 类型标注建议优化:List[List]可以明确指定内层元素类型为str,即List[List[str]],可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:27:01