On Oct 11, 4:41 am, Steven D'Aprano <[EMAIL PROTECTED] cybersource.com.au> wrote: > On Fri, 10 Oct 2008 06:20:35 -0700, bearophileHUGS wrote: snip > > I have seen professional programmers too use class attributes instead of > > instance ones... > > That's only a mistake if you don't mean to use class attributes instead > of instance attributes.
Off topic: That gives me an idea for an interesting technique. class Foo( HasInstanceVars ): class InstanceVars: x= 0 y= None z= [ 0, 1 ] The __init__ method in HasInstanceVars adds any InstanceVars members to the instance members. It's not terribly different than using __init__-- slightly slower, slightly clearer. It could even include a '__initvars__' variable which adds constructor parameters by name to the instance. It's marginally problematic how to create new objects each time Foo is instantiated. You could require factories, pickle- unpickle the contents, require 'deepcopy' compatibility, execute a string, or call a function which uniquely executes the class statement. >>> foo= Foo() >>> foo.x+= 1 >>> foo2= Foo() >>> foo2.x 0 >>> foo.x 1 -- http://mail.python.org/mailman/listinfo/python-list