[英]Python wrapper function discarding arguments
我有一个设置,其中事件处理程序始终是带有单个事件参数的函数。
但是我经常发现自己编写的处理程序不使用任何事件信息。 因此,我不断编写以下形式的处理程序:
def handler(_):
#react
为了抛弃参数。
但是我希望我不必这样做,因为有时我想将处理程序重用为不带参数的常规操作函数,有时我想将现有的零参数函数用作处理程序。
我当前的解决方案是使用lambda包装函数:
def handler():
#react
event.addHandler(lambda _:handler())
但是,由于其他原因,这似乎是错误的。
我对lambda的直观理解是,它首先是对返回值的描述,而事件处理程序则什么也不返回。 我感觉到lambda旨在表达纯功能,在这里我仅将它们用于引起副作用。
另一个解决方案是放弃所有参数的通用装饰器。
def discardArgs(func):
def f(*args):
return func()
return f
但是我在很多地方都需要它,而且看起来很简单,不得不将这样的实用程序导入每个脚本似乎很可笑。
有没有特别标准或“ pythonic”的方法来包装函数以丢弃所有参数?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.