Default method arguments

bonono at gmail.com bonono at gmail.com
Wed Nov 16 04:27:12 EST 2005


What you want is essentially :

if parm_x is not supplied, use self.val_x

So why not just express it clearly at the very beginning of the
function :

def f(self, parm_x=NotSupplied, parm_y=NotSupplied ,,,)
  if parm_x is NotSupplied: parm_x = self.val_x
  if parm_y is NotSupplied: parm_y = self.val_y

Much easier to understand than the "twisting your arm 720 degree in the
back" factory method, IMO.

Gregory Petrosyan wrote:
> Thanks a lot, but that's not what I do really want.
> 1) f() may have many arguments, not one
> 2) I don't whant only to _print_ x. I want to do many work with it, so
> if I could simply write
>
> def f(self, x = self.data)                           (*)
>
> it would be much better.
>
> By the way, using
>
> class A(object):
>     data = 0
>     ....
>     def f(self, x = data)
>
> solves this problem, but not nice at all
> 
> So I think (*) is the best variant, but it doesn't work :(




More information about the Python-list mailing list