擅长:python、mysql、java
<p>您还可以在构造函数中定义<code>foo</code>方法:</p>
<pre><code>class C(object):
def __init__(self, mode=False):
self.mode = mode
self.foo = (self._foo_mandatory if mode else
lambda optional_parameter="": self._foo_mandatory(optional_parameter))
def _foo_mandatory(self, optional_parameter):
print("something {0}".format(optional_parameter))
>>> c1 = C(False)
>>> c1.foo("Good")
something Good
>>> c1.foo()
something
>>> c2 = C(True)
>>> c2.foo("Bad")
something Bad
>>> c2.foo()
Traceback (most recent call last):
...
TypeError: _foo_mandatory() takes exactly 2 arguments (1 given)
</code></pre>