Pass by reference?
dale at out-think.NOSPAMco.uk
Thu May 25 07:58:33 EDT 2000
Interesting. That makes things a bit clearer.
Thanks to all of you who took the time to explain.
Out-Think Ltd, UK
Business Technology Consultants
Dale Strickland-Clark <dale at out-think.NOSPAMco.uk> wrote in message
news:8gin25$sfe$1 at supernews.com...
> There isn't much else that's relevant around this statement.
> DBCon is an ADO connection object. This statement deletes some rows in a
> database and should return the number deleted in delcnt - the second
> argument. However, delcnt is always zero regardless of actual count
> delcnt = 0
> print DBCon.Execute("delete from parts where path='%s' and drive='%s'"
> (path, drive), delcnt, 1)
> print delcnt
> However, I stuck a print statement on the front to see what was returned
> found a list of two items, the second of which is the count I want - but
> isn't it returned where it should be?
> Also the following program proves to me that arguments are passed by value
> and not by reference:
> def wibble(var):
> var = 1
> x = 0
> print x
> It prints 0 showing that the assignment in wibble is made to a copy of x
> So - how do I pass a variable to a function/subroutine/method by
> Thanks for any insight into this.
> Dale Strickland-Clark
> Out-Think Ltd, UK
> Business Technology Consultants
> Shae Erisson <shapr at uab.edu> wrote in message
> news:392C683E.AF7398D4 at uab.edu...
> > Dale Strickland-Clark wrote:
> > >
> > > How do I pass a value by reference so the called routine can update
> > >
> > > Here's an extract from a routine that uses ADO on NT to access a
> > > ADO will return the number of records deleted in the second parameter
> > > it's not working like this.
> > >
> > > DBCon.Execute("delete from parts where path='%s' and drive='%s'" %
> > > (drive, path), delcnt)
> > That's not enough information for me to figure out what's wrong... can
> > you post five to ten lines of code and what you think they should do?
> > for every case I've ever seen, pass by reference is the norm in python.
> > you can explicity make a copy of a variable if you like though.
> > here's a quick demo using the 'is' operator:
> > class TestClass():
> > def update(self, val):
> > self.strx = val
> > >>> testy = TestClass()
> > >>> x = 4
> > >>> testy.update(x)
> > >>> x is testy.strx
> > 1
> > The 'is' operator returns 1 (aka true) if the two references point to
> > the same thing, which means they 'is' the same thing.
> > I've heard that the Redneck version of Python (they read Py3K as PyKKK)
> > returns "ain't" for false.
> > I-have-the-right-to-make-fun-of-my-home-state!'ly y'rs
> > --
> > sHae mAtijs eRisson (sHae at wEbwitchEs.coM) gEnius fOr hIre
> > Control - 9 out of 10 Freaks prefer it.
More information about the Python-list