Default parameter for a method
Larry Bates
larry.bates at websafe.com`
Wed Apr 16 14:47:31 EDT 2008
s0suk3 at gmail.com 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.
-Larry
More information about the Python-list
mailing list