我正在尝试编写一个东西,您可以将您的服务检查代码传递给它,并警告它是否返回false-在python中,如何将代码传递给事物的实例?
#!/usr/bin/env python
def service_check():
print('service is up')
class Alerter():
def watch(f):
f()
watcher = Alerter()
watcher.watch(service_check())
返回:
service is up
Traceback (most recent call last):
File "./service_alert", line 12, in <module>
watcher.watch(service_check())
TypeError: watch() takes exactly 1 argument (2 given)
答案 0 :(得分:3)
这是工作代码
def service_check():
print('service is up')
class Alerter():
def watch(self,f):
f()
watcher = Alerter()
watcher.watch(service_check)
如@ Tomothy32所述,有2个更改。
答案 1 :(得分:1)
watch()函数缺少用于self的参数,因此上述程序会引发异常。另外,您应该只传递函数的名称以在watcher.watch(service_check)中传递其地址,而不是通过service_check()进行调用。 程序应该可以按照@ arunraja-a的建议进行这些更改。