breakpoint
是添加到 Python 3.7 中的内置函数,作为一种更简单的调试会话的方法。从本质上讲,它只是从pdb
模块调用set_trace()
,pdb
模块是内置于Python中的调试器模块。
pdb
让你做的是随时停止代码的执行,检查变量的值,根据需要运行一些代码,然后你甚至可以做一些花哨的事情,比如一次运行一行代码,或者检查解释器内堆栈帧的状态。
open是允许您读取和写入文件的函数。
它。。。实际上相当直截了当,而且我没有任何晦涩难懂的事情可以解释,所以我甚至不会打扰它。如果您想了解更多信息,可以阅读有关读取和写入文件的官方文档。
repr
的目的是帮助开发人员更好地查看对象状态。
repr
用于创建对象的有用字符串表示形式,希望能够简洁地描述对象及其当前状态。这样做的目的是能够通过查看对象的 repr 来调试简单的问题,而不必在每一步都探测对象的属性。
>>> class Vector:
... def __init__(self, x, y):
... self.x = x
... self.y = y
...
>>> v = Vector(3, 5)
>>> v
<__main__.Vector object at 0x7f27dff5a1f0>
repr
的默认值根本没有帮助。您必须手动检查其属性:
>>> dir(v)
['__class__', ... , 'x', 'y']
>>> v.x
3
>>> v.y
5
但是,如果你实现一个友好的repr
:
>>> class Vector:
... def __init__(self, x, y):
... self.x = x
... self.y = y
... def __repr__(self):
... return f'Vector(x={self.x}, y={self.y})'
>>> v = Vector(3, 5)
>>> v
Vector(x=3, y=5)
现在,这些内置并不是真正的内置。与模块一样,它们并没有真正在模块builtins
中定义。相反,它们在site
模块中定义,然后在site
模块运行时注入到内置中。
site
是一个在启动 Python 时默认自动运行的模块。它负责设置一些有用的内容,包括使pip包可用于导入,以及在REPL中设置制表符完成等。
它做的另一件事是设置这些有用的全局函数:
help
用于查找模块和对象的文档。它等效于调用 。pydoc.doc()
exit
并退出Python进程。调用它们等效于调用 。quitsys.exit()
这三个文本也由site
模块定义,在REPL中键入它们将打印出其文本,并且license()
是交互式会话。
好吧,这就是交易。Python是巨大的。
以下是我们甚至还没有触及的几件事:
这甚至可能不是全部。
但是,重要的是你现在对Python的基本原理了解很多。你知道是什么让Python起作用,你了解它的优势。
其余的东西,你可以拿起,你只需要意识到它们的存在!
官方的Python教程有一个关于内置模块的部分,围绕所有这些模块的文档实际上非常好。阅读它,只要你需要它,它几乎可以帮助你弄清楚你需要的一切。
还有300多个由安东尼·布里茨代码制作的详细视频,这些视频非常翔实。
所以既然你已经了解了所有这些,你为什么不建立一些伟大的东西呢?
(完结) 最后再附上原博客的地址
此外,如果你对Python背后实现的原理感兴趣,对魔法方法、描述符等实用内容感兴趣,可以阅读《流畅的Python》、《Effective Python 90 Specific Ways to Write Better Python》等书籍。并且,可以随时在Python标准库文档中查找所需要的函数。