On Mon, Jan 16, 2017 at 6:58 AM, David D <daviddsch...@gmail.com> wrote:
> I am creating a parent class and a child class.  I am inheriting from the 
> parent with an additional attribute in the child class.  I am using __str__ 
> to return the information.  When I run the code, it does exactly what I want, 
> it returns the __str__ information.  This all works great.
>
> BUT
>
> 1) I want what is returned to be appended to a list (the list will be my 
> database)
> 2) I append the information to the list that I created
> 3) Whenever I print the list, I get a memory location

Technically it's an identity, not a memory location, but yes, I know
what you mean here.

What's happening is that printing a list actually prints the *repr* of
an object, rather than its str. The easiest change is to rename your
__str__ function to __repr__; if you don't need them to be different,
define __repr__ and it'll be used for printing as well.

By the way, you'll find that Python 3 makes some things with class
definitions a bit easier. There are less traps to potentially fall
into. I strongly suggest using the latest Python (currently 3.6) or
something close to it (3.5 is in a lot of Linux distributions).

All the best!

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to