2017-09-08 6 views
2
私は私のプロジェクトで apscheduler.schedulerを使用すると、これは私のコード

python-例外TypeError:funcは呼び出し可能でなければなりません

import sys 
from time import sleep 
from apscheduler.scheduler import Scheduler 

TOKEN = "****" 

sched = Scheduler() 
sched.start() 

def my_job(text): 
    print(text) 

def main() : 
    job = sched.add_date_job(my_job('25'), '2017-09-08 14:08:05', args=['text']) 
    while True: 
     sleep(1) 
     sys.stdout.write('.'); sys.stdout.flush() 

if __name__ == '__main__': 
    main() 

であると私は私のミスでこの例外

25 
Traceback (most recent call last): 
    File "F:\+faeze\workspace\testHelloWorld\src\test\testDateTime.py", line 22, in <module> 
    main() 
    File "F:\+faeze\workspace\testHelloWorld\src\test\testDateTime.py", line 16, in main 
    job = sched.add_date_job(my_job('25'), '2017-09-08 14:08:05', args=['text']) 
    File "C:\Python27\lib\site-packages\apscheduler\scheduler.py", line 318, in add_date_job 
    return self.add_job(trigger, func, args, kwargs, **options) 
    File "C:\Python27\lib\site-packages\apscheduler\scheduler.py", line 284, in add_job 
    options.pop('coalesce', self.coalesce), **options) 
    File "C:\Python27\lib\site-packages\apscheduler\job.py", line 47, in __init__ 
    raise TypeError('func must be callable') 
TypeError: func must be callable 

を得た

更新:TypeError: func must be callableは何ですか?

+1

で指定された時に呼び出されることを意味します実際の関数の – AK47

+0

'func'はあなたのメソッドのためのパラメータであり、ある時点でfunc()を呼び出そうとします。たとえばfunc = '10' ... func()は何もしません.. number 10呼び出し可能ではありません – AK47

答えて

2

次の行を変更する必要があります。

job = sched.add_date_job(my_job, '2017-09-08 14:08:05', ('25',)) 

これはmy_jobという方法は、それが間違った変数はadd_jobメソッドに渡されている、とadd_job方法ではなく、変数/非呼び出し可能を受けていることを意味引数25

+0

これも間違っています。 "args"引数はリストまたはタプルであるはずです。これにより、 "argsは文字列でない文字列でなければならない"というエラーが発生します。 –

+0

@AlexGrönholm:答えを更新しました。 – Arun

+0

私によく見えます。 –

関連する問題