基于用户inpu继承类

2024-03-29 02:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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相同的方法(甚至它们的方法名也是相同的)。你知道吗

所以,这是个好办法吗?否则,我怎么可能用另一种方式来做呢。。


Tags: thefromimportapiobjmyserviceselect
1条回答
网友
1楼 · 发布于 2024-03-29 02:27:53

您可以使用fetchpullinheritabstract方法创建abstract classAPI,并在API1/API2/等类下构建具体的实现。。。你知道吗

例如,googleapi的fetch函数的实现将针对HTML进行,而fetch函数的feedparser将使用XML来实现。。。你知道吗

现在,根据您的需求或当前配置或任何输入,决定要使用哪个API并为其创建dynamic instance,因为所有类中的方法名都是相同的,您只需为该instance触发适当的function,就完成了。你知道吗

此外,之后还可以引入API3并更新配置—将API3类实例用作另一个content提供程序。你知道吗

相关问题 更多 >