0

パッケージ「colorExtentions」があり、私の__init__.py中に__all__=["red", "blue"]. __all__このパッケージは、ディレクトリとリストにモジュールを追加することで自動的に拡張できるはずです。以下は受け入れられますか、それともそのような種類の別の「ベストプラクティス」はありますか?

import colorExtentions
from colorExtentions import *

for moduleName in colorExtentions.__all__:
    colors.append(moduleName)
promptUserToChoose(colors)
4

2 に答える 2

0

モジュールからすべての名前をインポートすることは、公式の Python ドキュメントでは推奨されていません。見る:

http://docs.python.org/2/howto/doanddont.html#from-module-import

見積もり:

ホエン・イット・イズ・ジャスト・ファイン

from module import * で問題ない状況があります。

  • 対話型プロンプト。たとえば from math import * は、Python を素晴らしい関数電卓にします。
  • C のモジュールを Python の > モジュールで拡張する場合。
  • モジュールが自分自身を import * safe からアドバタイズしたとき。

どうしても使用したい場合は__all__、 などの別の名前を使用しcolor_listて、その変数を動的に拡張してください。次に、その変数をインポートします。

import colorExtentions
from colorExtentions import color_list

colors.extends(color_list)
于 2012-12-11T12:10:46.307 に答える