lallous <lall...@lgwm.org> writes: > How can I keep the class private and have the following work: > > [code] > class __internal_class(object): > @staticmethod > def meth1(s): > print "meth1:", s > > @staticmethod > def meth2(s): > print "meth2:", > __internal_class.meth1(s) > > x = __internal_class() > > x.meth2('sdf') > [/code]
By not using a double underscore. It is effectless on classes anyway (they are not hidden because of that). And additionally, but simply not using staticmethods at all. It's a rather obscure feature of python - usually, classmethods are what is considered a static method in other languages. And with that, even your double underscores work: class __internal_class(object): @classmethod def meth1(cls, s): print "meth1:", s @classmethod def meth2(cls, s): print "meth2:", cls.meth1(s) x = __internal_class() x.meth2('sdf') Diez -- http://mail.python.org/mailman/listinfo/python-list