Erik Enge wrote:
On Mon, 26 Feb 2001, Steve Alexander wrote:
Chris McDonough wrote:
The use of a literal anonymous list in methodb's signature for "objects" may have something to do with the results you're getting on conflict. Try assigning "objects" to an empty list in the method body instead.
Of course!
I'm missing out on something here. Why is this an "of course"? What's a "literal anonymous list"?
Consider this method: def methodFoo(self, objects=[]): # do stuff, including altering the list objects The list that is assigned to "objects" in the definition of arguments is only created once. There is only one instance of the list for all the calls to methodFoo. If you alter that list, then it is altered for the future too. Try it in Python from the interactive prompt:
def foo(o=[]): ... o.append('x') ... print o ... foo() ['x'] foo() ['x', 'x'] foo() ['x', 'x', 'x']
-- Steve Alexander Software Engineer Cat-Box limited