V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jakeyfly
V2EX  ›  问与答

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

  •  
  •   jakeyfly · 2018-06-01 23:58:25 +08:00 · 2538 次点击
    这是一个创建于 2401 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2018-06-02 13:12:36 +08:00
    Arnie97
        1
    Arnie97  
       2018-06-02 01:39:24 +08:00 via Android
    这跟 aps 没有关系,而是你根本不理解面向对象里的静态方法、类方法和实例方法…
    Python 实例方法的第一个参数是显式的实例对象,这和某些魔法 this 的语言相反,好处是不易与另两种方法混淆,坏处是满篇都是 self。
    jakeyfly
        2
    jakeyfly  
    OP
       2018-06-02 13:12:36 +08:00
    @Arnie97 大佬,SELF 是隐式传递的书上有说明。另外,只有持久化保存任务才会出现这个问题,不保存任务,就不会。不明白是那里出了问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   974 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.