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