4

私はグーグルアプリエンジンを使い始めたばかりで、グッドプラクティスとコード編成を探しています。私の問題のほとんどは、の混乱にあり__init__.pyます。

私の現在のテスト構造は次のようになります

/website
  main.py
  /pages
    __init__.py #1
    blog.py
    hello2.py
    hello.py
    /sub
      __init__.py #2
      base.py

/pagesと/pages/subのすべてを指すファイルとしてmain.pyを使用しようとしています。/ pages内のほとんどのモジュールは、ほぼすべて同じインポートを共有します(例:import urllib)。/pages内のすべてが、個々のモジュールに追加するのではなく、必要なものをインポートするように定義する方法はありますか?

現在__init__.py#1にあります

from sub.base import *

それでも私のモジュールblog.pyはBaseHandler(base.pyの関数)が定義されていないと言っています。私の最終目標は...のようなものを持つことです

main.py
from pages import *
#be able to call any function in /pages without having to do blog.func1() or hello.func2()
#rather just func1() and func2()

また、でモジュールの共通のインポートを共有できるようにし/pagesます__init__.py。たとえば、urllibとbase.pyのすべての関数を共有するようにします。この投稿をお読みいただきありがとうございます。ご意見をお待ちしております。

4

1 に答える 1

3

__init__.pyパッケージ内の他のモジュールの初期化子だと思うように聞こえます。そうではない。これはpagesパッケージになり(ファイルとサブディレクトリをモジュールにすることができます)、プログラムがを呼び出すと、通常のモジュールと同じように実行されますimport pagespages.py代わりに名前が付けられていると想像してください。

したがって、本当にすべてを同じ名前空間にダンプしたい場合は、init#2に (すべてをの名前空間にfrom base import *インポートする)を含めることができ、を含めることができます。とった?basesubblog.pyfrom sub import *

于 2012-07-01T17:06:06.680 に答える