弱引用对象 Python支持weak references作为第一类对象。有两种特定的对象类型直接实现弱引用。第一个是简单的参考对象,第二个作为原始对象的代理,尽可能地 // PyWeakref_Check( ob ) 如果ob是引用或代理对象,则返回true . int PyWeakref_CheckRef( ob ) 如果ob是参考对象,则返回true. int PyWeakref_CheckProxy( ob ) 如果ob是代理对象,则返回true。 PyObject* PyWeakref_NewRef( PyObject  *ob,PyObject *callback) Return

None宾语 注意PyTypeObject为None不直接暴露在Python / C API中。自None是单身,测试对象身份(使用==在C)就足够了。同样没有PyNone_Check()功能. PyObject* Py_None Python None对象,表示缺乏价值。这个对象没有方法。它需要被处理就像任何其他对象相关的referencecounts. Py_RETURN_NONE 正确处理返回Py_None从C函数内部(即增加None的引用计数并返回它。)

runpy– 找到并执行Python模块 源代码: Lib / runpy.py runpymodule用于定位和运行Python模块,首先使用它们。它的主要用途是实现-m命令行开关,允许使用Python模块命名空间而不是文件系统定位脚本. 注意这是not沙盒模块 – 所有代码都在当前进程中执行,任何副作用(如其他模块的缓存导入)将在函数返回后保留在原位. 此外,执行代码定义的任何函数和类都不能保证在runpy函数返回后正常工作。如果对于给定的用例不能接受该限制,importlib可能是比这个模块更合适的选择. runpy模块提供两个功能: runpy.run_modu

pkgutil– 包扩展实用程序 源代码: Lib / pkgutil.py 此模块为导入系统提供实用程序,特别是packagesupport . class pkgutil.ModuleInfo(module_finder, name, ispkg) 一个命名元组,它包含一个模块信息的简短摘要. 新版本3.6. pkgutil.extend_path (path, name) 扩展组成包的模块的搜索路径。intendeduse是将以下代码放在包的__init__.py: from pkgutil import extend_path__path__ = extend_path(_

code– 解释器基类 源代码: Lib / code.py codemodule提供了在Python中实现read-eval-print循环的工具。包括两个类和便利功能,可用于构建提供交互式解释器提示的应用程序. class code.InteractiveInterpreter(locals=None) 这个类处理解析和解释器状态(用户的命名空间);它不处理输入缓冲或提示或输入文件命名(文件名始终显式传递)。可选localsarguments指定将在其中执行代码的字典;它默认为一个新创建的字典,键”__name__”设置为”__console__”并且键”__doc__”设置为

traceback– 打印或检索堆栈追溯 源代码: Lib / traceback.py 该模块提供了一个标准接口,用于提取,格式化和打印Python程序的堆栈跟踪。它在打印堆栈跟踪时完全模仿了Python解释器的行为。当您想要在程序控制下打印堆栈跟踪时,这非常有用,例如在解释器周围的“包装器”中 该模块使用traceback对象 – 这是存储在sys.last_traceback变量中的对象类型,并作为sys.exc_info(). 的第三项返回。该模块定义了以下函数: traceback.print_tb(tb, limit=None, file=None) 如果l

dataclasses– 数据类 源代码: Lib / dataclasses.py 这个模块提供了一个装饰器和函数来自动添加生成的特殊方法如__init__()和__repr__()到用户定义的类。它最初是在PEP 557 . 在这些生成的方法中使用的成员变量是使用PEP 526 类型注释。例如这个代码: @dataclassclass InventoryItem: “””Class for keeping track of an item in inventory.””” name: str unit_price: float quantity_on_hand: int = 0

warnings– 警告控制 源代码: Lib / warnings.py 警告消息通常在有用的情况下发出,提醒用户程序中的某些情况,那个条件(通常)不值得提出异常并终止程序。例如,当程序使用过时的模块时,可能会发出警告. Python程序员通过调用此模块中定义的warn()函数来发出警告。(C程序员使用PyErr_WarnEx();请参阅异常处理了解详情). 警告信息通常写入sys.stderr,但是他们的处置可以灵活地改变,从忽略所有警告到将它们变成例外。警告的处理方式可能因警告类别(见下文),警告消息的文本以及警告消息的来源位置而异。对同一源位置的特定警告的重复通常会被抑制.

sys– 系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它总是可用的 sys.abiflags 在使用标准configure脚本,它包含PEP 3149 . 版本3.2. sys.argv 传递给Python脚本的命令行参数列表。argv[0]是脚本名称(依赖于操作系统是否为完整路径名)。如果使用-c命令行选项解释器,argv[0]设置为字符串”-c”。如果没有脚本名称传递给Python解释器,argv[0]是空字符串. 要循环标准输入或命令行上给出的文件列表,请在运行fileinput之前的Ipython启动期间查看 sys.ba

trace– 跟踪或跟踪Python语句执行 源代码: Lib / trace.py trace模块允许您跟踪程序执行,生成带注释的语句覆盖列表,打印调用者/被调用者关系以及在程序运行期间执行的列表函数。它可以在命令行中用于另一个编程器. 另请参阅 Coverage.py 一个流行的第三方覆盖工具,提供HTMLoutput以及分支覆盖等高级功能. 命令 – 线路使用 trace可以从命令行调用模块。它可以简单地作为 python -m trace –count -C . somefile.py … 以上将执行somefile.py并生成在执行过程中导入的所有Pyt