Steve Holden wrote: > In fact most Python doesn't use such constructs, though I'll admit the > occasional __init__ is more or less inevitable once you start using the > object-oriented features more than casually.
Occasional? I don't know about you, but I use __init__ in 99% of the classes I define. :) I don't think __special_symbols__ are manifestly unsuitable for newbies--they're just special. I was curious how much I used these symbols. For my current largish project: 306 __init__ 68 __future__ 44 __dict__ 3 __name__ 3 __main__ 3 __import__ 3 __builtin__ 2 __str__ 2 __file__ 1 __setitem__ 1 __setattr__ 1 __repr__ 1 __or__ 1 __ne__ 1 __int__ 1 __getitem__ 1 __getattribute__ 1 __eq__ 1 __call__ 1 __add__ Excepting my use of __dict__, not a whole lot advanced usage there, and I am NOT the kind of person who's afraid to do advanced things when it's useful. Much of the advanced stuff, including __dict__, is for debugging. (I have a lot of classes that acquire resources that I must explicity release, so I clear the __dict__ to catch any post-release accesses, which could cause subtle failures otherwise.) Carl Banks -- http://mail.python.org/mailman/listinfo/python-list