python:在运行时实例化和访问另一个类的方法

时间:2013-10-04 09:21:43

标签: python

我的项目要求如下:

有三个模块,比如说第一,第二和第三。

第三个模块有多个课程。

第二个模块调用第三个模块中定义的类之一的方法,并且在读取配置文件后应该知道类名。 (虽然下面的工作代码不是通过配置文件读取)

第一个模块调用第二个模块的方法,后者又调用第三个模块类中定义的方法。简而言之,第二个模块用作插件。

我写了一个像这样的工作代码:

第一个模块:

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()

第二个模块

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

第三个模块

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方式)。有没有更好的方法(我知道,总会有更好的方法)?

0 个答案:

没有答案