【问题标题】:x has type function but calling x gives a type error Python3x 具有类型函数,但调用 x 给出类型错误 Python3
【发布时间】:2017-09-02 16:24:23
【问题描述】:

我有以下python语句

x = lambda :8()

检查 x 的类型返回以下内容

<class 'function'>

然后这样做

x()
TypeError: 'int' object is not callable

我可以通过像这样在 lambda 周围加上括号来解决这个问题

x = (lambda :8)()

但我想知道发生了什么。

【问题讨论】:

  • 你为什么要这样做?您只是在尝试还是有一个目标?
  • 是的,只是在试验:)

标签: python function lambda types int


【解决方案1】:

问题不在于调用x,您正在尝试使用8() 调用8。调用整数会引发错误,因为 int 的实例不可调用。

我可以通过像这样在 lambda 周围加上括号来解决这个问题

您对x = (lambda :8)() 所做的是构造一个始终返回数字8 的匿名函数,然后调用它,并将名称x 分配给返回值。

>>> x = (lambda :8)()
>>> x
8

但是,x() 仍然会引发错误,因为它再次尝试调用整数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2020-04-17
    • 1970-01-01
    • 2019-01-27
    • 2016-09-04
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多