前置き
実験的に同じディレクトリ上に3つファイルを作成し、
test3.pyを実行したところ、「test1」と出力されました。
いろいろググってみてから作ったのですが、
「test3」と出力されるものだと思っていました。
python
1# test1.py 2class Test1(object): 3 def __init__(self): 4 print(__name__)
python
1# test2.py 2import test1 3def Test2(): 4 test = test1.Test1()
python
1# test3.py 2import test2 3test2.Test2()
本題
同ディレクトリ上に5つのファイルを作ります。
python
1# test1.py 2class Test1(object): 3 def __init__(self): 4 print(__name__)
python
1# test2.py 2import test1 3def Test2(): 4 test = test1.Test1()
python
1# test_a.py 2import test2 3def Test_a(): 4 test2.Test2()
python
1# test_b.py 2import test2 3def Test_b(): 4 test2.Test2()
python
1# main.py 2import test_a 3import test_b 4 5for _ in range(10): 6 moji = rand_ab() # ランダムで'a'か'b'を返す関数とする 7 if moji == 'a': 8 test_a.Test_a() 9 else: 10 test_b.Test_b()
main.pyを実行し、以下のような出力結果例を得たいのですが、
test_a test_a test_b test_a test_b test_b test_a test_a test_b test_a
実際は以下のようになると予想されます。
test1 test1 test1 test1 test1 test1 test1 test1 test1 test1
質問事項
出来る限り余計な引数を渡したくないのですが、上手い実装方法はあるでしょうか。
__name__
にはこだわらなくてもいいです。
(本当はtest1.py内で if __name__
== hogehoge : などとやって分岐を作る予定です)
また、前置きが「test1」と出力された理由をご教授いただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 09:45