[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.

-Larry
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to