例えば:
Files/
main.py
SubFileA/
__init__.py "from util1 import help"
util1.py "def help(): print ...A..."
SubFileB/
__init__.py "from util1 import help"
util1.py "def help(): print ...B..."
SubFileA と SubFileB の util1.py の内容が異なります。
ユーザーがどの util1.py をインポートするかを指定できる方法が必要です。
私は次のようなものを期待しています:
if subFileA:
from SubFileA import *
else:
from SubFileB import *
util1.py の API は同じですが、実装が異なります。
これを行う理由は、2 つの util1.py を組み合わせると、コードが見にくくなり、保守が難しくなるためです。誰かが私にこれに対する解決策を教えてくれることを願っています、またはどんなアドバイスも素晴らしいでしょう!
これらのコードを試してみましたが、警告が表示されました (動作しますが、警告は恥ずかしいです):
main.py:4: SyntaxWarning: import * only allowed at module level
def main():
main.py:4: SyntaxWarning: import * only allowed at module level
def main():
みんな。私は解決策を見つけたと思います。しかし、それは良いプログラミングスタイルではないと思います。
Files/
main.py "from directory import *"
directory/
__init__.py
"user=raw_input()
if user:
from directoryA import *
else
from directoryB import * "
directoryA/
__init__.py "from util1 import help1()"
util1.py
directoryB/
__init__.py "from util1 import help1()"
util1.py
確かに、これは非常に奇妙に見えます。しかし、それは仕事をします。