I'm gonna skip all the *interesting* stuff and get straight to the technical Python nit <wink>: [Kirby Urner]
... PS: In Python, don't forget that you can just define synonyms. Like, if your Vector object has a translate(self,v) method (mine does), feel free to write:
def move(self,v): return self.translate(v)
Too hard! It's enough to do move = translate inside the class body, after the "translate" method has been defined. Example: class C: def hifalutin_offputting_name(self, arg): print arg plainfolks_friendly_name = hifalutin_offputting_name C().plainfolks_friendly_name(42) prints 42.
And you could define resize() as an alternative to scale().
No, I'm afraid that one isn't allowed <wink>. Oh, all right, it is. You can actually have any executable code whatsoever in a class body. At the end of the class body, whatever is sitting in the class's local namespace becomes the content of the class __dict__. And this is why assignment works just as well as a "def" to define a method in the class. sometimes-the-chisel-is-as-surprisingly-interesting-as-the- sculpture<wink>-ly y'rs - tim