Karl Kobata wrote:
I am new to python and am wondering. When I create a class, with ‘def’ functions and if this class is instantiated say 50 times. Does this mean that all the ‘def’ functions code within the class is duplicated for each instance?

Can someone give me a short and simple answer as to what happens in python?

To expand slightly on Gary's answer. Dotted names -- ob.attr -- are typically (but not always) resolved as follows: does ob have attribute attr? If yes, get the corresponding object. If no, does type(ob) have attribute attr? If yes, get the corresponding object. In no, look in the baseclasses of type(ob) in some order (details not important here).

So, instance methods are class attributes and instance.method will resolve to the method attribute of type(instance) -- assuming that the instance does not have an attribute of the same name. Lookup for special methods (with reserved __xxx__ names) may go directly to the class and never look at the instance attributes.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to