0

だから私は、スケジューラで選択が機能しない理由を理解しようとしています。現時点では、毎回新しいことわざを選ぶわけではありません。スケジューラは正常に動作し、他のコンテキストで正常に使用された選択です。

それで、私はここで何が間違っていますか?また、その情報が役立つ場合は、「インポート [プロジェクト名]」と言ってインタープリターを介してこれを実行します。

ありがとう!

from apscheduler.scheduler import Scheduler
from random import choice

#change this to a text file
cat_sayings = [
"I can haz?",
"I pooped in your shoe.",
"I ate the fish.",
"I want out.",
"Food? What...? Food?",
"When are you coming home? There's food that needs eating!",
"Lulz, I am sleeping in your laundry.",
"I didn't do it. Nope."]

sayings = choice(cat_sayings)

def cat_job(sayings):

    print sayings


s = Scheduler()
s.add_cron_job(cat_job, args=[sayings], second='*/30')
s.start()
4

1 に答える 1

1

choice(cat_sayings)モジュールの最上位レベルで一度だけ呼び出すだけで、二度と呼び出すことはありません。したがって、1 つのランダムな選択肢を選択し、新しい選択肢を選択することはありません。

これを修正するには、コードを関数に移動します。

def cat_job(sayings):
    print choice(sayings)

# ...

s.add_cron_job(cat_job, args=[cat_sayings], second='*/30')
于 2013-11-12T19:06:15.827 に答える