我一直在玩easygui
,我想知道如果方法有这样的参数,是否有任何方法可以自动覆盖每个方法的title
参数默认值。
例如我现在可以这样做:
import easygui
oldf = easygui.boolbox
def newf(title='mytitle', *args):
oldf(title=title, *args)
easygui.boolbox = newf
有更复杂,更快捷的方法吗?
答案 0 :(得分:2)
以下是您可以这样做的方法:
import easygui
import inspect
import functools
funcs = [f for f in easygui.__dict__.values() if callable(f)]
for func in funcs:
sig = inspect.signature(func)
if 'title' in sig.parameters:
newf = functools.partial(func, title='mytitle')
setattr(easygui, func.__name__, newf)