Python 将外部函数传递给类方法
我想了解如何将外部函数传递给类方法。 例如,假设我试图每秒调用一个函数“job”Python 将外部函数传递给类方法,python,python-2.7,Python,Python 2.7,我想了解如何将外部函数传递给类方法。 例如,假设我试图每秒调用一个函数“job” 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.
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
类方法在哪里?您拥有的是一个实例方法。您可能不知道与静态、类和实例方法相关的特定于python的术语。一个相关链接是。谢谢比尔兄弟!x=Scheduler()将创建一个实例。如果您不介意,可以告诉我x=Scheduler做什么吗?
x=Scheduler
为类调度器创建另一个名称。所以您可以这样做:AnotherSchedulerClass=Scheduler;x=另一个SchedulerClass()代码>。