- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一位 friend 提到使用 Python 2,(假设您在命令行的路径环境变量中有它)
$ pydoc exceptions
非常有用,并且知道它每周可以节省几分钟的网页查找时间。我自己大约每周一次谷歌异常层次结构,所以这对我来说也是一个有用的提醒。它与您使用
获得的文档相同>>> import exceptions
>>> help(exceptions)
在 Python 2 中,因为 pydoc
使用异常模块来提供在线文档。
但是,他指出这不适用于 Python 3。这是因为 exceptions
模块在 Python 3 中不存在。
我明白他喜欢它的原因 - 它显示了非常有用的异常层次结构,便于快速阅读,我自己也经常引用它。但是 Python 3 中缺少包含生成的内置文档的 exceptions
模块!他怎么能代替呢?
为了确保 Stackoverflow 有这个问题的答案,一般来说:
How does one replace the contents of the exceptions module in Python 2 when moving to Python 3?
最佳答案
作为序言,让我说在大多数情况下,您不需要 Python 2 的 exceptions
模块的内容,因为它们可以在 __builtin__
中找到所有模块中的全局命名空间。但是,我们希望它用于在线文档。
在这种情况下,简单的答案是,为了保持一致性,Python 2 的 exceptions
模块的内容已移至 builtins
模块。
在 Python 3 shell 中:
>>> import builtins
>>> help(builtins)
将提供相同的文档。
如果你的路径上有 Python 3 的目录(也就是说,你可以在命令行中键入 python,它会调出 Python 3 shell),然后使用
$ pydoc builtins
我们会得到相同的。
如果你想测试这个,但你的路径上没有 Python 3 的 pydoc,你可以在你的 Python3.x 目录中使用以下两个来测试它,我得到了相同的输出:
$ python3 pydoc.py builtins
$ ./pydoc.py builtins
您将看到 Python 3 的异常层次结构(如下所示),以及文档的其余部分:
BaseException
Exception
ArithmeticError
FloatingPointError
OverflowError
ZeroDivisionError
AssertionError
AttributeError
BufferError
EOFError
ImportError
LookupError
IndexError
KeyError
MemoryError
NameError
UnboundLocalError
OSError
BlockingIOError
ChildProcessError
ConnectionError
BrokenPipeError
ConnectionAbortedError
ConnectionRefusedError
ConnectionResetError
FileExistsError
FileNotFoundError
InterruptedError
IsADirectoryError
NotADirectoryError
PermissionError
ProcessLookupError
TimeoutError
ReferenceError
RuntimeError
NotImplementedError
StopIteration
SyntaxError
IndentationError
TabError
SystemError
TypeError
ValueError
UnicodeError
UnicodeDecodeError
UnicodeEncodeError
UnicodeTranslateError
Warning
BytesWarning
DeprecationWarning
FutureWarning
ImportWarning
PendingDeprecationWarning
ResourceWarning
RuntimeWarning
SyntaxWarning
UnicodeWarning
UserWarning
GeneratorExit
KeyboardInterrupt
SystemExit
一位评论者说:
Would be nice to include a python 2/3 compatibility solution. My use case was a list of all exception names for a syntax highlighter.
为了兼容性,我会做这样的事情:
try:
import exceptions
except ImportError:
import builtins as exceptions
exceptions_list = sorted(n for n, e in vars(exceptions).items()
if isinstance(e, type) and
issubclass(e, BaseException))
您可以期望 builtins
拥有 Python 3 中的每个内置异常,就像 Python 2 中的 exceptions
一样 - 它也将拥有其余的内置
exceptions_list 可以是所有内置异常的规范列表。
关于Python3 中缺少 Python 2's ` exceptions` 模块,它的内容去哪儿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27030933/
我正在尝试在 map 上绘制一些疾病事件数据的位置。 我用它来导入数据: ByTown% addProviderTiles("CartoDB.Positron")%>% addPolygons
我有一个文件调用 find.js,我使用 node find.js 运行,我的节点是版本 10 我不知道为什么我无法使用 async await。 const axios = require("axi
我有一个项目作为引用添加到 System.Web。 但是,它似乎无法获取 HttpContext。这样做: Imports System.Web _ApplicationBase = HttpCont
在互联网上找到这段代码,出于某种原因它缺少 while 循环逻辑“while(i....)”,虽然我找到了 PigLatin* 问题的其他可行解决方案,但我真的很想了解这个正在工作。 *PigLati
我工作了一整天来运行 Xampp 并在其上安装 TYPO3。现在我登录到后端,但没有显示许多管理模块,例如模板、访问等。 - 一定是我做错了什么,但我不知道。 these are the module
你好 我有编译这个问题 \begin{equation} J = \sum_{j=1}^{C} \end{equation} 我不断收到错误 missing $ inserted 这很奇怪,因
我正在尝试使用 SQLite CLI,但无法获得 generate_series功能来工作。我可以按照文档中的建议使用递归 CTE 对其进行模拟,但我似乎无法获得该链接中的任何示例。这是我的 sess
我目前正在开发我想要的软件,而软件正在安装,它可以在后台为软件创建 native 图像。 我正在考虑使用 NGEN 并将进程优先级设置为低,因为我不希望它消耗 100% CPU。但是我发现我的计算机上
我想使用 Xcodes Instruments 进行 UI 自动化测试。但似乎缺少“自动化”。我怎样才能添加这个? 最佳答案 如果您想使用自动化仪器,请使用 Xcode 7.3。 Apple 在 Xc
我目前在 JS 开发中迈出了一小步,并编写了以下链接添加器: const button = document.getElementById('button') const listdiv = docu
此代码有什么问题: NSError *error = nil; [SFHFKeychainUtils deleteItemForUsername:@"IAPNoob01" andServiceName
出于某种原因,在安装和配置(我认为)一切之后,com.adobe.utils.AGALMiniAssembler 不见了,其他一切正常。 我认为我已尽一切努力让孵化器正常工作,但显然我错过了一步。 如
我有一个名为 new 的方法。调用 new 时,我传递了一个参数,但是当我运行应用程序时,出现没有参数或参数为空的错误。 StepReader.pm package StepReader; use s
安装 gtk 1.2(包名 gtk1)和 macports chokes 在最终的 make 中,在 libintl.h 的第 440 行。 extern locale_t libintl_newlo
我用按钮创建表格。 这是javascript代码: function layersListTable(layers) { var content =''; $.each($(layer
我在使用此 javascript 时遇到此错误,任何人都可以帮我弄清楚我做错了什么吗? $(this).prepend('Check availability »'); 它给我错误 mis
我有一个独立的工具链 NDK13b、api19、llvm 3.8 编译器、arm 32 位、带有 libcpp(llvm C++ 库) 我想避免依赖 libgcc,所以我构建了 compiler-rt
我按照一些教程使用 phonegap 的条形码扫描器插件。但是当我从现有源创建一个新的 android 项目来创建条码库时 (step 6 in this page)我收到错误:“AndroidMan
我现在尝试在 Eclipse 中打开我的布局 xml 文件。我只得到错误 No XML content. Please add a root view or layout to your docume
我的 android-sdk-windows\tools 目录中缺少层次结构查看器工具。 工具链接: http://developer.android.com/guide/developing/too
我是一名优秀的程序员,十分优秀!