On Apr 16, 9:26 am, [EMAIL PROTECTED] wrote: > I had posted this before but all the spam whipped it out... > > 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 thereturn 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.
That is the straightforward way. It may not seem that way now but all languages have patterns and this is a common one in python. You will see code like this all over Python, even in the standard library. The best thing to do is embrace it. It will not only work, but make your code more readable to others. Matt -- http://mail.python.org/mailman/listinfo/python-list