初学者事件处理:任何提示清理/缩短使用OOP和没有类似功能?



初学者。我知道"函数的事情,类的事情"这句话,但我想我在这里把我的头打了个结。考虑到我有四个函数,我的头脑立即转向使用OOP。但是如果我不使用OOP,我会如何清理这些没有它如果他们与on_click事件吗?

def reset_all(event):
slider_one.reset()
slider_two.reset()
slider_three.reset()
print('All sliders reset.')
def reset_one(event):
slider_one.reset()
print('Slider 1 resetn')
def reset_two(event):
slider_two.reset()
print('Slider 2 resetn')
def reset_three(event):
slider_three.reset()
print('Slider 3 resetn')
button_allreset.on_clicked(reset_all)
button_onereset.on_clicked(reset_one)
button_tworeset.on_clicked(reset_two)
button_threereset.on_clicked(reset_three)

将欣赏任何/所有使用OOP的示例,而不使用:-)

在我看来,最简单的方法是使用数组和函数闭包:

sliders = [slider_one, slider_two, slider_three]
def reset_all(event):
for slider in sliders:
slider.reset()
print('All sliders reset.')
def reset(n):
def f(event):
sliders[n-1].reset()
print(f'Slider {n} resetn')
button_allreset.on_clicked(reset_all)
button_onereset.on_clicked(reset(1))
button_tworeset.on_clicked(reset(2))
button_threereset.on_clicked(reset(3))

否则,我认为在类中聚合相关的功能没有问题,尽管它不代表一个"东西"。

最新更新