【问题标题】:'int' object is not callable when calculating min'int' 对象在计算 min 时不可调用
【发布时间】:2014-12-15 09:00:16
【问题描述】:

我遇到了一个非常奇怪和令人沮丧的错误。

问题很简单:

>>> mylist
[70.71, 67.23, 60.1, 62.52, 64.14, 65.4, 68.84, 61.04, 66.95, 62.22, 63.73, 62.04, 57.12, 61.3, 65.48, 61.49, 66.94, 62.68, 60.31, 64.38, 62.84, 63.03, 67.12, 60.65, 61.68, 64.0, 62.91, 61.36, 60.65, 62.45, 64.22, 66.4, 59.96, 57.03, 66.4, 60.43, 64.05, 64.09, 50.94, 39.84, 45.12, 63.39, 55.62, 55.58, 58.04, 59.91, 60.05, 57.3, 61.83, 63.87, 50.58, 62.56, 60.75, 58.9, 62.99, 61.65, 59.09, 59.91, 64.66, 61.1, 61.31, 59.62, 56.65, 60.1, 66.04, 60.57, 59.77, 53.0, 60.84, 61.75, 64.53, 52.0, 62.08, 67.69, 60.62, 55.04, 54.49, 30.82, 48.32, 59.66, 62.56, 66.71, 70.4, 55.13, 59.32, 63.06, 56.0, 56.19, 65.9, 61.01, 62.03, 59.43, 62.82, 56.83, 62.91, 76.44, 68.01, 61.0, 63.51, 58.12, 65.77, 56.88, 63.18, 69.03, 63.34, 54.91, 60.25, 64.79, 64.17, 61.86, 53.05, 63.42, 57.08, 60.36, 59.62, 64.69, 59.78, 58.34, 65.19, 55.49, 73.53, 56.25, 61.09, 53.35, 63.45, 64.34, 29.79, 59.75, 67.7, 59.74, 52.17, 61.29, 58.88, 55.68, 55.81, 57.52, 62.0, 62.49, 60.47, 61.86, 56.94, 56.31, 61.82, 62.01, 59.99, 59.4, 57.9, 63.08, 64.56, 60.77, 63.95, 60.1, 66.22, 58.05, 66.25, 62.34, 61.17, 64.04, 64.08, 61.1, 56.19, 61.04, 53.13, 64.58, 60.96, 58.97, 59.43, 66.22, 58.4, 55.68, 35.47, 42.6, 57.57, 58.3, 60.84, 62.52, 54.86, 60.9, 60.99, 60.47, 61.45, 58.34, 62.17, 63.68, 62.4, 64.62, 56.78, 59.14, 61.47, 54.7, 55.3, 58.09, 62.95, 61.47, 57.69, 62.45, 54.86, 58.51, 60.52, 54.56]

现在我尝试获取最小值:

>>> min(mylist)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

为什么?

【问题讨论】:

  • 我无法重现这个。 min(mylist) 返回29.79
  • 我可以得到相同的结果,但只是这样做:mylist = numpy.array(mylist)mylist.min()
  • @newPyUser: 或者您可以使用del min 删除屏蔽内置的分配。
  • 不要把答案放在问题中;接受现有答案或编写自己的答案。

标签: python min callable


【解决方案1】:

很可能您有一个名为min 的变量,它隐藏了内置的 min 函数。如果您使用的是交互式控制台,请执行以下操作:

del min

还可以考虑使用 numpy,因为它可以在更大的列表上更快:

>>> import numpy
>>> numpy.min(mylist)

【讨论】:

  • 从技术上讲,该函数并未被覆盖,而是被隐藏(即该函数在内置函数中,而 int 在局部变量或全局变量中)。
【解决方案2】:

我无法重现这个。 min(mylist) 返回29.79

您可能在代码中使用了一个名为min 的变量。不要这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 2015-01-29
    • 2014-03-17
    • 1970-01-01
    • 2022-11-28
    • 2012-11-04
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多