Python 自动替换模块中每个函数的默认值
我一直在玩弄Python 自动替换模块中每个函数的默认值,python,python-3.x,Python,Python 3.x,我一直在玩弄easygui,我想知道如果每个方法都有这样一个参数,是否有任何方法可以自动覆盖title的参数默认值 例如,我现在可以做: import easygui oldf = easygui.boolbox def newf(title='mytitle', *args): oldf(title=title, *args) easygui.boolbox = newf 有没有一种更复杂、更快速的方法可以做到这一点?以下是您可以做到的方法: import easygui impo
easygui
,我想知道如果每个方法都有这样一个参数,是否有任何方法可以自动覆盖title
的参数默认值
例如,我现在可以做:
import easygui
oldf = easygui.boolbox
def newf(title='mytitle', *args):
oldf(title=title, *args)
easygui.boolbox = newf
有没有一种更复杂、更快速的方法可以做到这一点?以下是您可以做到的方法:
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)