issue in list of dict

Posted by gaggina on Stack Overflow See other posts from Stack Overflow or by gaggina
Published on 2012-10-18T16:35:20Z Indexed on 2012/10/18 17:01 UTC
Read the original article Hit count: 346

Filed under:
|
|
class MyOwnClass:

  # list who contains the queries
  queries = []

  # a template dict
  template_query = {}
  template_query['name'] = 'mat'
  template_query['age'] = '12'

obj = MyOwnClass()

query = obj.template_query
query['name'] = 'sam'
query['age'] = '23'
obj.queries.append(query)

query2 = obj.template_query
query2['name'] = 'dj'
query2['age'] = '19'
obj.queries.append(query2)

print obj.queries

It gives me

[{'age': '19', 'name': 'dj'}, {'age': '19', 'name': 'dj'}]

while I expect to have

[{'age': '23'  , 'name': 'sam'}, {'age': '19', 'name': 'dj'}]

I thought to use a template for this list because I'm gonna to use it very often and there are some default variable who does not need to be changed.

Why does doing it the template_query itself changes? I'm new to python and I'm getting pretty confused.

© Stack Overflow or respective owner

Related posts about python

Related posts about list