我创建了以下代码,但是当我单击click me按钮时,出现以下错误消息:TypeError: 'mpfr' object is not callable有人知道代码有什么问题吗?import gmpy2 as gfrom ipywidgets import widgetsfrom IPython.display import displaybutton = widgets.Button(description="Click Me!")display(button)max_precision = g.get_max_precision()pi = g.const_pi()g.set_context(g.context())def set_bits_precision(decimal_precision): bits_precision = int(decimal_precision/g.log(2)) if (bits_precision > max_precision): bits_precision = max_precision ctx = g.get_context() ctx.precision = bits_precision returndef square_root(number): return g.sqrt(number)def circle_perimeter(radius): return 2*pi*radius def on_button_clicked(x): return square_root(x)set_bits_precision(10)print(pi)button.on_click(on_button_clicked(2))
1 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
button.on_click必须提供一个回调函数。您传递参数2的计算结果on_button_clicked(因此,实际上是2的平方根),而不传递函数。您可以使用部分函数评估来完成您想要的事情,方法是将最后一行代码替换为:
import functools
button.on_click(functools.partial(on_button_clicked, 2))
添加回答
举报
0/150
提交
取消