我对我的项目有这样的要求:
有三个模块,让我们说第一个,第二个和第三个。
第三个模块有不止一个类。
第二个模块调用第三个模块中定义的类之一的方法,它应该在读取配置文件后知道类名。(虽然下面的工作代码没有通过配置文件读取)
第一个模块调用第二个模块的方法,第二个模块又调用第三个模块的类中定义的方法。简而言之,第二个模块作为插件工作。
我写了一个这样的工作代码:
第一个模块:
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 方式)。有没有更好的方法(我知道,总会有更好的方法)?