Почему щепа ломает мои струны?
Я пытаюсь использовать sched для запуска tweetsearch, функции, которая принимает один аргумент, строку.
s.enter(delaypercycle, 1, tweetsearch, "nike")
s.run()
Это возвращает "TypeError: tweetsearch() принимает ровно 1 аргумент (4 дано)". Изменение "nike" на "курицу" возвращает ту же ошибку, кроме как с (7 дано).
Любая идея, как передать строку в Sched?
Пример кода, который выдает ту же ошибку:
import sched, time
s = sched.scheduler(time.time, time.sleep)
def printword(word):
print word
While True:
s.enter(1, 1, printword, "chicken")
s.run
2 ответа
Решение
Требуется кортеж аргументов. Передача в одну строку заставляет ее использовать эту строку в качестве итерируемой: каждый символ становится отдельным аргументом.
Попробуйте вместо этого передать кортеж: ("Nike",)
(обратите внимание на запятую).
Измените свой код на это:
s.enter(delaypercycle, 1, tweetsearch, ("nike",))
s.run()
sched
пытался сделать tweetsearch(*"nike")
, что эквивалентно tweetsearch('n', 'i', 'k', 'e')
,