私のプロジェクトには次のような要件があります。
3 つのモジュールがあります。1 番目、2 番目、3 番目としましょう。
3 番目のモジュールには複数のクラスがあります。
2 番目のモジュールは、3 番目のモジュールで定義されたクラスの 1 つのメソッドを呼び出し、構成ファイルを読み取った後にクラス名を認識している必要があります。(ただし、以下の作業コードは構成ファイルを読み取っていません)
最初のモジュールは、3 番目のモジュールのクラスで定義されたメソッドを順番に呼び出す 2 番目のモジュールのメソッドを呼び出します。つまり、2 番目のモジュールはプラグインとして機能します。
私は次のような作業コードを書きました:
最初のモジュール:
from secondclass import secondClass
class firstClass():
def __init__(self):
print self
def call_second(self):
secondClass.call_third_class(secondClass())
obj = firstClass()
obj.call_second()
2 番目のモジュール
def _get_driver():
module = __import__("thirdclass")
driver = getattr(module, "thirdClass")()
return driver
class secondClass(object):
def __init__(self):
self.driver = _get_driver()
def call_third_class(self):
res = self.driver.sum(20, 30)
print "res :", res
3 番目のモジュール
class thirdClass():
def __init__(self):
pass
def sum(self, number1, number2):
return number1 + number2
class fourthClass():
def __init__(self):
pass
def multiply(self, number1, number2):
return number1 * number2
私はpythonが初めてなので、これが正しい方法(pythonicの方法)であるかどうかわかりません。より良い方法はありますか(私は知っています、常により良い方法があります)?