nested classes

Esmail ebonak at gmail.com
Fri Mar 20 16:24:20 EDT 2009


On Mar 20, 2:41 pm, Chris Rebert <c... at rebertia.com> wrote:
> 2009/3/20 Benjamin Kaplan <bs... at case.edu>:
>
>
>
>
>
> > On Fri, Mar 20, 2009 at 10:06 AM, Esmail <ebo... at 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"?




More information about the Python-list mailing list