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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to