classification
Title: Populating instances of class automatically
Type: behavior Stage: resolved
Components: Versions: Python 3.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: Daugeras, geoffreyspear
Priority: normal Keywords:

Created on 2018-11-28 17:05 by Daugeras, last changed 2018-11-29 06:41 by steven.daprano. This issue is now closed.

Messages (3)
msg330613 - (view) Author: Daugeras (Daugeras) Date: 2018-11-28 17:05
Hello, I am not sure it is a bug, but it is a very strange behavior of Python, which I do not understand.

I created a class (mainly a structure) and instantiated an object of this class in a first function (Object 1). The function populates Object 1.
In another function, I instantiate another object of the same class (Object 2) , and Object 2 is automatically populated with the data of Object 1. Note than Object 1 and Object 2 have different memory adresses.

This behavior is very strange. Is it normal for Python or is it a Bug ?
msg330614 - (view) Author: Geoffrey Spear (geoffreyspear) * Date: 2018-11-28 17:08
It's impossible to guess exactly what you did from your vague description instead of actual code, but it may be covered by this FAQ question: https://docs.python.org/3/faq/programming.html#why-are-default-values-shared-between-objects

(mutable objects as class rather than instance attributes will display similar behavior. This isn't a bug.)
msg330630 - (view) Author: Daugeras (Daugeras) Date: 2018-11-28 21:45
Hi Geoffrey,

Indeed you where right, this is not a bug.
The link you provided did solve my problem.
I declared classes with attributes as strings, lists, etc... and indeed it was the reason for the issue.
I changed it to instantiate the attributes in the __init__ method of the class, and it solved the problems.
Thanks again !!
History
Date User Action Args
2018-11-29 06:41:01steven.dapranosetstatus: open -> closed
resolution: not a bug
stage: resolved
2018-11-28 21:45:02Daugerassetmessages: + msg330630
2018-11-28 17:08:56geoffreyspearsetnosy: + geoffreyspear
messages: + msg330614
2018-11-28 17:05:42Daugerascreate