我有一个web应用程序,最初我使用feedparser
从我的博客中提取数据。现在我想用Google API
来扩展其他各种特性。你知道吗
因为我不想破坏我的旧代码并想添加新的API作为附加的插件类型,所以我想设置一个非常类似于BeautifulSoup
的结构,它提供了根据情况选择HTML/ XML
解析器的选择
BeautifulSoup(markup, "html.parser")
BeautifulSoup(markup, "lxml")
# They still support the same methods mentioned in the documentation.
我就是这么做的:
from apis import api1, api2
from dev_user import my_api_choice
select = { "api1" : api1, "api2": api2 }
obj = pservice (select["my_api_choice"] )
obj.method1()
# invokes method1 of the inherited class.
pservice
非常接近于总结类。我最初想写它是因为我有机会在里面使用googleapi。你知道吗
我甚至确保api2(提供googleapi功能)提供了与api1相同的方法(甚至它们的方法名也是相同的)。你知道吗
所以,这是个好办法吗?否则,我怎么可能用另一种方式来做呢。。
您可以使用
fetch
或pull
和inherit
等abstract
方法创建abstract class
API
,并在API1
/API2
/等类下构建具体的实现。。。你知道吗例如,googleapi的
fetch
函数的实现将针对HTML
进行,而fetch
函数的feedparser
将使用XML
来实现。。。你知道吗现在,根据您的需求或当前配置或任何输入,决定要使用哪个
API
并为其创建dynamic instance
,因为所有类中的方法名都是相同的,您只需为该instance
触发适当的function
,就完成了。你知道吗此外,之后还可以引入
API3
并更新配置—将API3类实例用作另一个content
提供程序。你知道吗相关问题 更多 >
编程相关推荐