2015-12-23 55 views
0

我一直在玩easygui,我想知道是否有任何方法可以自動覆蓋每個方法的title的參數默認值,如果方法有這樣一個參數。自動替換模塊中的每個函數的默認值

比如我現在可以做的:

import easygui 

oldf = easygui.boolbox 
def newf(title='mytitle', *args): 
    oldf(title=title, *args) 
easygui.boolbox = newf 

有沒有更復雜和快速的方法來做到這一點?

回答

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)