Is it bad practise to write __all__ like that

Karim karim.liateni at free.fr
Fri Jul 29 05:54:41 EDT 2011


On 07/29/2011 08:37 AM, Thomas Rachel wrote:
> Am 28.07.2011 20:01 schrieb Ian Kelly:
>
>> The advantage of Thomas's decorator here is that it lets you place the
>> denotation of whether a function is exported alongside its definition,
>> whereas simply declaring the __all__ list forces you to separate them.
>>   It also avoids the problem of possibly mistyping the function's name
>> in the list.
>
> Thank you. For the ones who do not like @__all__ because it might look 
> ugly, here is an alternative:
>
> __all__ = []
>
> def export(obj):
>     __all__.append(obj.__name__)
>     return obj
>
> It is nearly the same, but without an extra class and with the more 
> readable
>
> @export
> def func(): pass
>
>
> Thomas

I did not plan that this topic introduce so many great ideas.
It started from a simple question and ended up with new
and beautiful solution.
Very pleased of the collective spirit of this mailing list.
It changed from non-sense verbal fightings I saw earlier in some discussions
like perl versus python related topic.

Karim




More information about the Python-list mailing list