On Wed, Apr 14, 2010 at 4:58 PM, kirby urner <kirby.ur...@gmail.com> wrote: > """ > This version adds an instance variable self.keep > that propagates though the scaling method to > the next of kin. For example: >
"propagates through"... phraseology maybe not that clear. The "keep" word is like from "castle keep", with a polyhedron being like a special box for a keepsake. The scaling method instantiates a new object of type M with volume and edges re-scaled according to the argument. I don't bother with surface area. The name 'keep' is pointing back to the same object at the origin of this chain of progeny. I find this an interesting study in Python's naming conventions, -- plus the polyhedra are designed to be instructive... Interactive session with remarks... Instantiate an object with keep bound to a dictionary object >>> rh = ch.R_Dodeca(keep={'mites':48}) double the size through two "generations" of subsequent object: >>> rh1 = rh * 2 >>> rh2 = rh1 * 2 >>> rh2.volume 384 Note that rh2.keep still points to the same object as the original rh.keep does. >>> rh2.keep {'mites': 48} adding a new (key,value) pair to rh.keep does not rebind it to a new object -- rh.keep still shares the same referent as rh2.keep >>> rh.keep['a']=96 >>> rh2.keep {'a': 96, 'mites': 48} Here, in rebinding rh.keep to an immutable string, we no longer name the same object as rh1.keep or rh2.keep rh.keep is not a "class variable". >>> rh.keep = 'new value' >>> rh2.keep {'a': 96, 'mites': 48} Kirby _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig