On Wed, 2008-04-16 at 13:47 -0500, Larry Bates wrote: > [EMAIL PROTECTED] wrote: > > I wanted to know if there's any way to create a method that takes a > > default parameter, and that parameter's default value is the return > > value of another method of the same class. For example: > > > > class A: > > def __init__(self): > > self.x = 1 > > > > def meth1(self): > > return self.x > > > > def meth2(self, arg=meth1()): > > # The default `arg' should would take the return value of > > meth1() > > print '"arg" is', arg > > > > This obviously doesn't work. I know I could do > > > > ... > > def meth2(self, arg=None): > > if arg is None: > > arg = self.meth1() > > > > but I'm looking for a more straightforward way. > > You can write this as: > > def meth2(self, arg=None): > arg = arg or self.meth1() > > IMHO - You can't get much more "straightforward" than that.
What if arg is 0 an empty list or anything else that's "False"? def meth2(self, arg=None): arg = (arg is not None) or self.meth1() is what you want. Regards, Cliff -- http://mail.python.org/mailman/listinfo/python-list