【发布时间】:2017-03-31 11:49:14
【问题描述】:
我正在尝试创建一个 lambda 函数,该函数将对传递给它的值进行四舍五入,同时还指定了小数位数
我做了以下
c = lambda x: round(x, dp)
dp 已经被指定了
但是,尝试调用它会出现以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: 'int' object is not callable
当我输入时
c(23.2323332345435)
我可能半睡半醒,但我很确定这就是创建简单 lambda 函数的方式,但我不明白为什么它不起作用。
我试过用括号包裹起来无济于事
【问题讨论】:
-
我很确定你使用/覆盖了
round,这是除了 lambda 之外唯一可以调用的表达式。使用print(type(round))找出答案。 -
你为什么首先使用
lambda,而不是写def c(x): ...? -
此外,该函数将在调用时使用全局
dp的值,而不是在定义函数时使用dp的值.
标签: python python-3.x lambda