python - Python 中的 all(map) 和 any(map) 输出 bool 值,但 IPython 中输出 true 映射对象

标签 python numpy ipython any shadowing

我正在使用 python 3.10.1,通过 ipython(7.31.0,调用相同的 python 3.10.1)以交互方式进行探索,然后在脚本准备好后直接通过 python 进行探索。

我的代码中有一个错误,我将其简化为两者之间的以下行为差异:

[IPython]

In [1]: any(map(bool, ("")))
Out[1]: <map at 0x7f7f2d6061d0>

[CPython]

>>> any(map(bool, ("")))
False

由于 IPython 中的输出 map 对象是真实的,因此当在 if 语句中使用代码时,两个程序将给出相反的结果。我想知道是什么导致了这种差异,是否可以采取任何措施来修复它,以及是否存在我应该注意的其他类似错误(功能?)。

最佳答案

检查any.__module__。它应该是'builtins'。如果没有,则执行del any

此症状通常意味着您已经隐藏了内置 any与 numpy 的同名函数:

>>> any(map(bool, ("")))
False
>>> from numpy import any
>>> any(map(bool, ("")))
<map object at 0x7ffff6874a90>

IPython will do this如果您以 --pylab 模式启动它,或者使用 %pylab 魔法启用它。

关于python - Python 中的 all(map) 和 any(map) 输出 bool 值,但 IPython 中输出 true 映射对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75632678/

相关文章:

python - 在 Pandas Dataframe 中查找没有零和 NaN 的最小值

python - numpy 行/列到一维向量?

python - 将 Ipython 嵌入到 PyQt4 应用程序中

python - python 的哪个统计模块支持单向方差分析和事后测试(Tukey、Scheffe 或其他)?

python - Pyocrypt DES3文件加密,解密缺失部分文本

python - 如何使用网格几何管理器调整 TkInter 标签的绝对大小而不是附加空间

python - 计算温度的偏导数(温度的水平平流)

python - IPython:如何自动加载 npz 文件并为变量赋值?

python - 从 Frozen Tensorflow Estimator Graph 获取输入名称?

python - Pandas 中没有 "from_csv"方法