有没有一种方法可以调用函数 "a",它在 iterable/yielding 函数 "b" 上调用 next()
Is there a way to call function "a" which calls next() on the iterable/yielding function "b"
我有 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 以接受数字并通过
如果其他全局变量不打扰你,你可以这样做:
def num():
for number in range(1, 5):
yield number
c = num()
def config_btn():
global rad_btn1, rad_btn2, rad_btn3, rad_btn4, c
next(c)
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)
不过好像不太干净。一定有更好的办法。
然后你必须处理在第 5 次迭代时抛出的 StopIteration
错误,如果它到目前为止。
我有 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 以接受数字并通过
如果其他全局变量不打扰你,你可以这样做:
def num():
for number in range(1, 5):
yield number
c = num()
def config_btn():
global rad_btn1, rad_btn2, rad_btn3, rad_btn4, c
next(c)
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)
不过好像不太干净。一定有更好的办法。
然后你必须处理在第 5 次迭代时抛出的 StopIteration
错误,如果它到目前为止。