python - 意外的异常
问题描述
当我有机会时,我正在教基本的 Python,我想展示我们如何轻松地生成每种类型的值,如下所示:
>>> l = [bool,int,float,str,list,tuple,set,dict]
>>> o = [f() for f in l]
>>> o
[False, 0, 0.0, '', [], (), set([]), {}]
然后我想我是否可以None
以某种方式将一个项目添加到列表中,所以我这样做了,我得到了意想不到的异常:
>>> o = [f() for f in l, None]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
在这里,由于将列表理解与另一个值相结合,我最多期望 a SyntaxError
,但由于某种原因我得到了TypeError: 'list' object is not callable
为什么我会收到此错误?什么样的评估顺序会导致 Python 认为我想调用 a list
?
解决方案
在您的列表 comp 中[f() for f in l, None]
,它正在迭代可迭代的l, None
或显式(l, None)
的元组。元组中索引 0 处的项目是 l ,您将其定义为列表,因此不能将其称为f()
推荐阅读
- java - 获取 org.testng.TestNGException:在类路径中找不到类:通过 testng.xml 运行我的程序期间 eclipse 中的错误
- python - Pygame 图形错误:无法打开 blue.png
- docker - Google App Engine - 使用特定 Linux 版本运行 docker 映像
- java - 如何使用这个给定的构造函数创建对象
- jquery - 如何在 jquery 中调整窗口大小时使 clearInterval 工作?
- python - asyncio.gather(*tasks) 仅等待所有任务的子集失败
- three.js - 如何将 Three.js 与 ParcelJS 捆绑器一起使用。(webpack 提供插件替代)
- python - 连接两个熊猫系列(不是 str 类型)的值太慢(线性复杂度)
- android - 如何在 Flutter 中的特定时间安排闹钟?
- ios - 在 iOS 应用程序中,如何在不共享完整 UIImage 的情况下与另一个 iCloud 用户共享照片,让 iCloud 处理这个问题?