Python中文
首页
教程
问答
标签
搜索
登录
注册
使用模块中的异常而不显式导入它
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个实用模块<code>utils.py</code>,它使用<a href="http://www.python-requests.org/" rel="nofollow">requests</a>执行一些任务。在客户机代码(使用<code>utils</code>)中,我需要处理<code>requests</code>引发的异常,但我希望避免隐式导入<code>requests</code>(即在客户机中)。我怎样才能做到这一点?你知道吗</p> <p><code>utils.py</code>是(简化的)</p> <pre><code> import requests def download(url): # stuff return requests.get(url) </code></pre> <p>我希望<code>client.py</code>像这样</p> <pre><code> import utils # <-- no "import requests" try: utils.download(whatever) except HTTPError: # <-- not "requests.exceptions.HTTPError" do stuff </code></pre> <p><code>except utils.something</code>也可以。名称不需要是全局的。我只想避免在客户端的任何地方提到<code>requests</code>。你知道吗</p> <p>对于那些想知道的人来说,这只是一个关注点分离的问题。<code>client.py</code>不应该关心<code>utils.download</code>到底是如何实现的,以及它使用的底层库是什么。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用<code>utils.requests.exceptions.HTTPError</code>,但不能避免“提及”<code>requests</code>。你所能做的就是以一种迂回的、容易出错的方式提及它。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
9 回答
Jupyter运行不同版本的卸载库?
3 回答
Jupyter运行指定的键盘快捷键
9 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
1 回答
Jupyter重新加载自定义样式
4 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
1 回答
jupyter错误:无法在随机林中将决策树视为png
10 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
10 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
7 回答
Jupyter隐藏数据帧索引,但保留原始样式
5 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
3 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
7 回答
Jupy上Python的读/写访问问题
5 回答
jupy上没有模块cv
2 回答
Jupy上的排序错误
10 回答
Jupy中bqplot图形的紧凑布局
7 回答
Jupy中matplotlib plot的连续更新
3 回答
Jupy中Numpy函数的文档
8 回答
Jupy中Pandas的自动完成问题
5 回答
jupy中Qt后端的Matplotlib动画
6 回答