外部関数をクラスメソッドに渡す方法を理解したいと思います。たとえば、関数「ジョブ」を毎秒呼び出そうとしているとします。
import schedule
import time
def set_timer_minutes(func):
schedule.every(1/60).minutes.do(func)
def job():
print("I'm working...")
set_timer_minutes(job)
while 1:
schedule.run_pending()
time.sleep(1)
上記のコードは、「私は働いています」を毎秒出力します。でもクラスに入れようとしたら
class Scheduler:
def set_timer_minutes(self,func):
schedule.every(1/60).minutes.do(func)
while 1:
schedule.run_pending()
time.sleep(1)
def job():
print("I'm working...")
x= Scheduler
x.set_timer_minutes(job)
私は得る
TypeError:set_timer_minutes()に1つの必須の位置引数がありません: 'func'
スケジューラのインスタンスを作成する必要があります。
x = Scheduler()
の代わりに
x = Scheduler
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加