Python 在';sched.scheduler.输入';
在这个代码位中,我使用sched lib创建函数循环。在这里,我注意到当我们分配参数时,后面有一个逗号。我想知道这是为什么 当我删除尾随逗号时,它将返回错误,并显示: *后面的do_something()参数必须是iterable,而不是schedulerPython 在';sched.scheduler.输入';,python,tuples,Python,Tuples,在这个代码位中,我使用sched lib创建函数循环。在这里,我注意到当我们分配参数时,后面有一个逗号。我想知道这是为什么 当我删除尾随逗号时,它将返回错误,并显示: *后面的do_something()参数必须是iterable,而不是scheduler 在其他尾随逗号的问题中,人们说尾随逗号会把int变成元组。在这里,无论是否添加尾随逗号,s的值类型仍然是scheduler对象。元组只需要,逗号,它们不需要()括号,除非它们需要!例如: import sched, time s = sche
在其他尾随逗号的问题中,人们说尾随逗号会把int变成元组。在这里,无论是否添加尾随逗号,
s
的值类型仍然是scheduler对象。元组只需要,
逗号,它们不需要()
括号,除非它们需要!例如:
import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc):
print("Doing stuff...")
s.enter(5, 1, do_something, argument=(sc,))
s.enter(5, 1, do_something, argument=(s,))
s.run()
以及:
在这两种情况下,x
和y
是相同的。但就你而言:
x = 1,
y = (1,)
正如你所发现的,它们是不一样的。为什么?
在第二种情况下,
参数=sc,
将,
解释为参数列表的,
的一部分,因此它不被视为指示元组()。在本例中,您需要(sc,)
来构建元组()
(s)
与s
相同,而(s,)
是一个元组,包含变量s
引用的一个项。它与int
没有什么特别的关系。这是对元组构造中一个非常常见的角型的很好的解释。
x = 1,
y = (1,)
s.enter(5, 1, do_something, argument=(sc,))
s.enter(5, 1, do_something, argument=sc,)