我有一个实用程序模块utils.py
,它使用请求来执行一些任务。在客户端代码(使用utils
)中,我需要处理由 引发的异常requests
,但我想避免requests
隐式导入(即在客户端中)。我怎样才能做到这一点?
utils.py
是(简化)
import requests
def download(url):
# stuff
return requests.get(url)
我希望client.py
成为类似的东西
import utils # <-- no "import requests"
try:
utils.download(whatever)
except HTTPError: # <-- not "requests.exceptions.HTTPError"
do stuff
except utils.something
也可以。该名称不需要是全局的。我想要的只是避免requests
在客户的任何地方提及。
对于那些想知道的人,这只是关注点分离的问题。client.py
不应该关心它是如何utils.download
实现的以及它使用什么底层的底层库。