【发布时间】:2020-07-24 16:24:47
【问题描述】:
如图所示,我有 2 个函数:
def num():
for number in range(1, 5):
yield number
def config_btn():
global rad_btn1, rad_btn2, rad_btn3, rad_btn4
c = next(num())
temp_entry.config(text=f'{iterate_questions(2)}'),
# temp_entry.config(state=DISABLED)
rad_btn1.config(text=f'{iterate_answer_choices(c, 1).title()}', indicatoron=0),
rad_btn2.config(text=f'{iterate_answer_choices(c, 2).title()}', indicatoron=0),
rad_btn3.config(text=f'{iterate_answer_choices(c, 3).title()}', indicatoron=0),
rad_btn4.config(text=f'{iterate_answer_choices(c, 4).title()}', indicatoron=0)
def num() 是一个在迭代时产生数字 1 到 5 的函数(我希望如此),而 config_btn 使用前面的函数将一个数字分配给“c”。然后将“c”传递给另一个函数。有没有办法可以从这些函数之外调用 config_btn 以将“c”更改为下一个数字并继续执行其余的函数?
我已经尝试改变 config_btn 来接受一个数字并通过了
【问题讨论】:
-
num() 中产生的值是 1,2,3,4
-
是....但是当我调用 config_btn 函数时,它一直将 1 分配给“c”,所以不确定是什么阻止它获取下一个数字 (2) 并将其分配给“c”
-
因为你一直打电话给
num()。 -
num返回一个产生连续值的 object。next(num())创建该对象,将其传递给num,然后丢弃该对象。n = num(); next(n); next(n); # etc. -
def config_btn(c):,....,config_btn(next(num()))
标签: python user-interface tkinter ttk