On Mar 20, 2:41 pm, Chris Rebert <c...@rebertia.com> wrote: > 2009/3/20 Benjamin Kaplan <bs...@case.edu>: > > > > > > > On Fri, Mar 20, 2009 at 10:06 AM, Esmail <ebo...@gmail.com> wrote: > > >> Hello all, > > >> I am curious why nested classes don't seem to be used much in Python. > >> I see them as a great way to encapsulate related information, which is > >> a > >> good thing. > > >> In my other post "improve this newbie code/nested functions in > >> Python?" > >> (I accidentally referred to nested functions rather nested classes - > >> it was late) > >> I asked something similar in the context of a specific example where I > >> think the > >> use of nested classes makes sense. > > >> But perhaps not? > > > Nested classes in Python don't add much other than an additional level of > > complexity (and an extra hash lookup). Behavior in python is usually grouped > > into modules, not into classes. The only reason to nest a class in Python is > > if the first class is going to generate the second class on the fly. > > Verily. See also the principle that "Flat is better than nested" from > the Zen of Python (http://www.python.org/dev/peps/pep-0020/).
Neat list .. thanks .. just what I'm looking for. I am trying to learn the idioms of the language, this will help. > The OP would be better off naming internal classes with leading > underscores per Python convention rather than nesting them inside > other classes. So you would make them "stand-alone/external" classes but "tag" them with the underscore to document that they are used by some other classes as "internal service providers"? -- http://mail.python.org/mailman/listinfo/python-list