gpt4 book ai didi

python - 使用 ipython 小部件递增计数器

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:37 26 4
gpt4 key购买 nike

我想在按下 ipython 小部件按钮时增加计数器。我能够在下面的代码中使用 global 使其工作,但是更好的方法是什么?

import ipywidgets as widgets
from IPython.display import display

count = 0
w = widgets.Button(description='Click me')
w.on_click(plusone)
display(w)

def plusone(w):
global count
count +=1

最佳答案

使您的计数器成为一个对象,并让您的回调将计数器对象作为参数。

class Counter:
def __init__(self, initial=0):
self.value = initial

def increment(self, amount=1):
self.value += amount
return self.value

def __iter__(self, sentinal=False):
return iter(self.increment, sentinal)

然后你可以传递这个对象的实例..

import ipywidgets as widgets
from functools import partial
from IPython.display import display

def button_callback(counter, w):
counter.increment()

counter = Counter()
w = widgets.Button(description='Click me')
w.on_click(partial(button_callback, counter))
display(w)

#... sometime later

if counter.value > SOME_AMOUNT:
do_stuff()

关于python - 使用 ipython 小部件递增计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com