1

私のプロジェクトには次のような要件があります。

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の方法)であるかどうかわかりません。より良い方法はありますか(私は知っています、常により良い方法があります)?

4

0 に答える 0