猿问

在python中,如何在click事件上调用带有参数的函数

我创建了以下代码,但是当我单击click me按钮时,出现以下错误消息:


TypeError: 'mpfr' object is not callable

有人知道代码有什么问题吗?


import gmpy2 as g

from ipywidgets import widgets

from IPython.display import display


button = 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

    return


def 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))


慕码人8056858
浏览 603回答 1
1回答

小怪兽爱吃肉

button.on_click必须提供一个回调函数。您传递参数2的计算结果on_button_clicked(因此,实际上是2的平方根),而不传递函数。您可以使用部分函数评估来完成您想要的事情,方法是将最后一行代码替换为:import functoolsbutton.on_click(functools.partial(on_button_clicked, 2))
随时随地看视频慕课网APP

相关分类

Python
我要回答