[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

AltStyle によって変換されたページ (->オリジナル) /