nested classes

Chris Rebert clp2 at rebertia.com
Fri Mar 20 19:41:36 CET 2009


2009/3/20 Benjamin Kaplan <bsk16 at case.edu>:
>
>
> On Fri, Mar 20, 2009 at 10:06 AM, Esmail <ebonak 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/).
The OP would be better off naming internal classes with leading
underscores per Python convention rather than nesting them inside
other classes.

Cheers,
Chris

-- 
I have a blog:
http://blog.rebertia.com



More information about the Python-list mailing list