Is it bad practise to write __all__ like that

Thomas Rachel nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de
Thu Jul 28 08:29:00 EDT 2011


Am 28.07.2011 13:32 schrieb Karim:
>
> Hello,
>
> __all__ = 'api db input output tcl'.split()
>
> or
>
> __all__ = """
> api
> db
> input
> output
> tcl
> """.split()
>
> for lazy boy ;o). It is readable as well.
> What do you think?

Why not? But you could even do

class AllList(list):
     """list which can be called in order to be used as a __all__-adding 
decorator"""
     def __call__(self, obj):
         """for decorators"""
         self.append(obj.__name__)
         return obj

__all__ = AllList()

@__all__
def api(): pass

@__all__
def db(): pass

@__all__
def input(): pass

@__all__
def output(): pass

@__all__
def tcl(): pass

HTH,

Thomas



More information about the Python-list mailing list