[Tutor] garbage collection/class question
Jan Riechers
janpeterr at freenet.de
Fri Jan 11 20:41:11 CET 2013
On 10.01.2013 19:50, Mitya Sirenef wrote:
> On 01/10/2013 09:06 AM, richard kappler wrote:
>
> class Tree(object):
> height = 0
>
> def grow(self):
> self.height += 1
>
> You may have a dozen of related functions and you can logically group
> them together by making them methods of a class, making it easier to
> think about and work on the logic of your program.
>
>
>
Actually one question about those "dozens of related" instances
generated by:
greenwoodTree = Tree()
oakTree = Tree()
....
Both, greenwoodTree and oakTree, are derived from Tree class, thus
receiving the features and also - if so - holding unique values created
in there __init__ generator method - "self.height", "self.color" and so
forth uniquely each.
But do both share the same function memory space from the class "Tree"?
I am currently trying also to get my head wrapped around OOP in general,
but not 100% sure so that derived instances use the same functions (also
memory wise speaking) - or are there several definitions of "grow" ?
The confusion came somehow when reading about "classmethods" and
"staticmethods" and patterns like Singleton, monostate, borg...
from which I understand only ensure that the "self.height" properties
are shared across multiple instances of a given class?
From what I tried out using id() and generating functions in a loop -
the "id(class.function) provided the same result when printed out,
according to that:
http://stackoverflow.com/questions/121396/accessing-object-memory-address
So I assume the functions are shared across thus one decleration has
been made in "Tree" class and all siblings are using that one?
Thank you in advance for clarification.
Jan
More information about the Tutor
mailing list