pythonでインスタンスを再利用したいcacaponの備忘録

f:id:cacapon:20190509003606j:plain
こんなプログラムにしたくて、以下のように実装してみました。

# test_class.py
class TestClass():
    def ret_mes(self):
        return "return class message"
# inctance.py
from test_class import Test_Class

def make_test_class():
    instance = Test_Class()
    return instance
# use_class.py
from instance import make_test_class

test = make_test_class()

print(test.ret_mes())

最初この形で考えていたのですが、
使うたびに毎回生成しないとだめで、
使いまわしができないと、

上司の方からアドバイスをもらいました。

そこで、修正したのがこちらになります~

# test_class.py 変更なし
class TestClass():
    def ret_mes(self):
        return "return class message"
# inctance.py インスタンス生成だけにした
from test_class import Test_Class

i_test_class = Test_Class()
# use_class.py
#importでインスタンスそのものを取得
from instance import i_test_class 

# 取得したインスタンスから関数を呼び出す。
print(i_test_class.ret_mes())

この状態なら、たとえuse_class2.pyがでたとしても、
importするだけでtest_class.pyを使うことができます~

これで、心おきなく再利用できますね♪