擅长:python、mysql、java
<p>您也可以尝试包装您的函数。有东西在网上</p>
<pre><code>def wrapper(func, bool_arg):
def inner(*args, **kwargs):
kwargs['bool_arg']=bool_arg
return func(*args, **kwargs)
return inner
</code></pre>
<p>以及</p>
^{pr2}$
<p>应该行得通</p>
<p><strong>编辑</strong></p>
<p>如果要更改类的默认值而不是特定实例的默认值,可以创建一个派生类并重新定义<code>fun</code>包装<code>C</code>的方法。线上有东西(我现在没有时间测试):</p>
<pre><code>class D(C):
def fun(self, *args, **kwargs):
f = wrapper(C.f, False)
return f(*args, **kwargs)
</code></pre>
<p>然后关于@Ber的建议,您可以定义<code>def wrapper(func, **wrapkwargs)</code>,然后代替{<cd4>}do</p>
<pre><code>for i in wrapkwargs.iteritems(): #wrapkwargs is a dictionary
kwargs[i[0]] = i[1]
</code></pre>