Back9 wrote:
On May 11, 3:20 pm, Chris Rebert <c...@rebertia.com> wrote:
On Tue, May 11, 2010 at 12:08 PM, Back9 <backgoo...@gmail.com> wrote:
On May 11, 3:06 pm, Back9 <backgoo...@gmail.com> wrote:
<snip>
When i try it, it complains about undefined self.
i don't know why. TIA
Sorry
here is the what i meant
class test:
 self._value =0
 def func(self, pos =elf._value)
You're still defining the class, so how could there possibly be an
instance of it to refer to as "self" yet (outside of a method body)?
Also, just so you know, default argument values are only evaluated
once, at the time the function/method is defined, so `pos > self._value` is 
never going to work.

Do you mean for self._value to be a class variable (Java lingo: static
variable), or an instance variable?

Cheers,
Chris
--http://blog.rebertia.com
self._value will be instance variable

If you want an instance value to be your default, you'll need to us an indirect approach. There are no instances at the time the class is defined. So you want to create such a value in the __init__() method.
Something like the following (untested):

class  Test(object):
    def __init__(self, initvalue):
        self.value = initvalue
    def func(self, pos = None):
         if pos=None:   pos = self.value
         etc.

x = Test(44)
x.func(91)          #uses 91 for pos
x.func()              #uses 44 for pos


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

Reply via email to