Хорошей ли практикой является добавление имен в __all__ с помощью декоратора?

Это хорошая практика в Python (из Рецепты активного состояния - - Public Decorator )?

import sys

def public(f):
  """Use a decorator to avoid retyping function/class names.

  * Based on an idea by Duncan Booth:
  http://groups.google.com/group/comp.lang.python/msg/11cbb03e09611b8a
  * Improved via a suggestion by Dave Angel:
  http://groups.google.com/group/comp.lang.python/msg/3d400fb22d8a42e1
  """
  all = sys.modules[f.__module__].__dict__.setdefault('__all__', [])
  if f.__name__ not in all:  # Prevent duplicates if run from an IDE.
      all.append(f.__name__)
  return f

public(public)  # Emulate decorating ourself

Общая идея состоит в том, чтобы определить декоратор, который принимает функцию или класс. и добавляет свое имя в __ all __ текущего модуля.

20
задан Josh Lee 1 June 2011 в 19:25
поделиться