首页 > 解决方案 > TypeError:第一个参数必须是可调用的或无 - 错误不是第一次出现,而是稍后出现

问题描述

我有这条线来创建一个 defaultdict 并用一个列表作为一个值来初始化它。

page_by_due_date = defaultdict(list)
due_pages_list = []

for page, page_summary_dict in summary_by_page.items():
    scheduled_due_date = page_summary_dict.get('8.scheduled_due_date')
    page_by_due_date[str(scheduled_due_date)].append(page)
    if scheduled_due_date <= datetime.date.today():
        due_pages_list.append(page)

print(sorted(due_pages_list))
pprint.pprint(page_by_due_date)

当我第一次运行此代码时,它可以正常工作。但是如果我重新运行这段代码,我会得到这个错误。我不知道为什么它认为“列表”是不可调用的。我正在使用 Jupyter notebook - 如果我重新启动内核并再次运行代码,它就可以工作。

---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-25-56b08ad56f3e> in <module>
    ----> 1 page_by_due_date = defaultdict(list)
          2 due_pages_list = []
          3 
          4 for page, page_summary_dict in summary_by_page.items():
          5     scheduled_due_date = page_summary_dict.get('8.scheduled_due_date')

    TypeError: first argument must be callable or None

请注意,我已经进行了谷歌搜索并阅读了这 2 篇文章,但它们没有回答我的问题:

TypeError:第一个参数必须是可调用的

defaultdict : 第一个参数必须是可调用的或无

标签: python

解决方案


根据@KlausD 的线索,我在之后查看了代码,发现了一个我使用变量名“list”的实例,它会覆盖这个。发现问题并修复它。感谢您的帮助


推荐阅读