jakeyfly
V2EX  ›  问与答

Python 使用 apscheduler 碰到奇怪的问题,求大佬们解惑

  •  
  •   jakeyfly · Jun 1, 2018 · 2930 views
    This topic created in 2928 days ago, the information mentioned may be changed or developed.

    Job "1503281 (trigger: interval[0:01:00], next run at: 2018-06-01 23:54:36 CST)" raised an exception Traceback (most recent call last): File "/mnt/e/mitdo/lib/python3.5/site-packages/apscheduler/executors/base.py", line 125, in run_job retval = job.func(*job.args, **job.kwargs) TypeError: run() missing 1 required positional argument: 'self' Job "1426148 (trigger: interval[0:01:00], next run at: 2018-06-01 23:55:36 CST)" raised an exception Traceback (most recent call last): File "/mnt/e/mitdo/lib/python3.5/site-packages/apscheduler/executors/base.py", line 125, in run_job retval = job.func(*job.args, **job.kwargs) TypeError: run() missing 1 required positional argument: 'self'

    报这种错,真是一脸蒙蔽。我往 Scheduler 里增加的任务是一个类的实例方法。就是这个 run()。这个方法是没有参数的,为啥他说缺 self 啊!!!!!

    2 replies    2018-06-02 13:12:36 +08:00
    Arnie97
        1
    Arnie97  
       Jun 2, 2018 via Android
    这跟 aps 没有关系,而是你根本不理解面向对象里的静态方法、类方法和实例方法…
    Python 实例方法的第一个参数是显式的实例对象,这和某些魔法 this 的语言相反,好处是不易与另两种方法混淆,坏处是满篇都是 self。
    jakeyfly
        2
    jakeyfly  
    OP
       Jun 2, 2018
    @Arnie97 大佬,SELF 是隐式传递的书上有说明。另外,只有持久化保存任务才会出现这个问题,不保存任务,就不会。不明白是那里出了问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1067 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:59 · PVG 01:59 · LAX 10:59 · JFK 13:59
    ♥ Do have faith in what you're doing.