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

在for循环中调用Dataset类方法时遇TypeError错误求助

解决TypeError: Dataset.get_temp_on_date() missing required positional argument 'year'的问题

错误原因

get_temp_on_date是实例方法,你直接通过类Dataset调用它,而非先创建Dataset的实例。Python会把你传入的第一个参数"PHOENIX"当成实例方法必需的self参数,剩下的参数就少了一个,因此报错提示缺少year。

修复步骤

  1. 先创建Dataset实例
    类的__init__方法需要传入csv文件名来加载数据,所以先初始化实例:

    # 替换为你的温度数据csv文件路径
    dataset = Dataset("your_temperature_data.csv")
    
  2. 通过实例调用方法
    修改循环中的调用代码,用创建好的实例调用get_temp_on_date:

    year_list = list(range(1961,2017))
    year_array = np.array(year_list)
    temps = np.zeros(len(year_array))
    
    for i in range(1961,2017):
        temps[i-1961] = dataset.get_temp_on_date("PHOENIX", 12, 1, i)
    

补充说明

实例方法的第一个参数self是Python自动传入的——当你用实例调用方法时,Python会把实例本身作为self参数传递,你只需要传入方法定义中self之后的四个参数(city、month、day、year),这样参数数量就完全匹配了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:16:14