staticmethod(cls)

[email protected] (Pierre Asselin)
Newsgroups gmane.comp.python.general
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <[email protected]>
For reasons I won't go into I ended up defining classes inside of
a class body. That's not in the manual, but I see no reason it would
fail.

But then, I accidentally decorated the inner classes with
@staticmethod! It didn't break anything, but it had an interesting
side effect: help() and pydoc on the outer class shows the docs
of the inner class members. Normally only the inner classes are
listed, not their contents.

Here's a minimal example.
----------------------------------------------------------------------
class Outer:
    '''Outer class'''
    def outer_method(self):
        '''outer method'''

    class Inner0:
        '''Inner class'''
        def inner_0(instance):
            '''inner method, not seen by pydoc.'''

    @staticmethod
    class Inner1:
        '''Inner class passed through staticmethod()'''
        def inner_1(instance):
            '''inner method, visible to pydoc !'''
----------------------------------------------------------------------

Save and run pydoc, or import and run help(_module_.Outer).

Now that's *seriously* not-in-the-manual. I won't rely on that
behavior, plus the expanded documentation is a bit too much,
but I'm curious as how that interaction between staticmethod()
and help()/pydoc came about.

-- 
pa at panix dot com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.