[Python-ideas] deferred default arguments
Terry Reedy
tjreedy at udel.edu
Wed Jul 13 23:36:19 CEST 2011
On 7/13/2011 3:26 PM, Eric Snow wrote:
> class X:
> def f(self, name="N/A"):
print(name)
>
> class Y(X):
> def f(self, name="N/A"):
> super().f(name)
I believe
class Y(X):
def f(self, name=None):
super().f(name)
f.__defaults__ = X.f.__defaults__
will more or less do what you want. Using 'super()' instead of 'X' does
not seem to work. The default replacement might be done with a function
or class decorator.
> Y().f()
prints 'N/A'
--
Terry Jan Reedy
More information about the Python-ideas
mailing list