我正在寻找装饰一个“可调用”类(一个__call__
定义了方法的类),以便我可以在调用之前启动后台服务__init__
并在调用它本身之前操纵传递的参数以包含服务的详细信息开始了。
因此,例如:
@init_service # starts service on port 5432
class Foo(object):
def __init__(self, port=9876):
# init here. 'port' should now be `5432` instead of the original `9876`
def __call__(self):
# calls the background service here, using port `5432`
func = Foo(port=9876)
...
result = func()
该类init_service
将具有带有端口号的类属性,以便稍后可以关闭服务。