On 1/06/2006 9:24 AM, 3rdshiftcoder wrote:
i am having trouble using parameter values in my function and to be honest a
little trouble with
member variables. i am trying to pass in the argument 'd' representing
what the code will do is if it is 'd' it will make a delete query template
if it is an 'i' then insert query etc.
this is the results of my attempt to print the contents of the parameter
<__main__.getQryStr instance at 0x01151D50> ('d',) me mad
Exactly right, first parameter is the object itself, second parameter is
a 1-tuple of the supplied args. See more explanation below.
(and on a side note if i dont include the *args i get an invalid number of
parameters supplied message.)
why is it returning the value in this format ('d',) ?
i cant get x == d
i guess that value 'd' is stored in a tuple and i'd like to get it out of
No, 'd' is stored as the value of the attribute you've named "x". One of
the main points of the whole OO caper is that objects have attributes --
please see later remarks about the tutorial.
so basically the function returns nope as it stands
python is sure different from other languages i have used.
thanks for any help,
self.x = 'd'
You probably meant
self.x = op
Like the first (__init__) method, this should have the mandatory "self"
argument, plus *one* other arg .. *if* you need it. It's not apparent
why you are calling the constructor *and* the returnStr method *each*
print '%s %s me mad' % (x,args)
if x == 'd':
Here x is the object that you have created. The first argument to a
method is the object itself, and is conventionally named "self". It must
be declared in the method itself
def amethod(self, arg1, arg2):
but is supplied automatically when you invoke it
Please consider working your way through the Python tutorialhttp://docs.python.org/tut/node11.html
and/or one of the free e-books e.g.http://www.byteofpython.info/
At the end of this post is a modified version of your script which shows
what is going on under normal expected usage.
8<=== demo script ===
def __init__(self, op):
print '__init__ ... op:%r' % op
self.x = op
def returnStr(self, arg):
print 'returnStr ... self.x:%r arg:%r' % (self.x, arg)
return '=%s=%s=' % (self.x, arg)
obj = getQryStr('blah')
print '__main__ ... obj.x:%r' % obj.x
s = obj.returnStr('yadda')
print '__main__ ... s:%r' % s
8<=== output from demo script ===
__init__ ... op:'blah'
__main__ ... obj.x:'blah'
returnStr ... self.x:'blah' arg:'yadda'
__main__ ... s:'=blah=yadda='
8<=== end ===