在python模块名称之前引出下划线

问题描述 投票:0回答:2

我一直在寻找这个,但我找不到任何答案。我正在查看由其他人编写的python代码,并且有一个模块说“GUI_Module”。该模块包含一个包含GUI相关方法的类。然后将该模块导入__main__ python文件中,该文件使用这些方法。

而不是像这样导入其实际名称:

import GUI_Module

它是这样导入的尾随下划线:

import _GUI_Module

现在我知道python中下划线的大多数含义,但我没有找到任何解释在我们导入的模块名称之前的单个下划线应该做什么。

python
2个回答
1
投票

它与添加任何其他角色相同。模块名称更改,导致导入不同的模块。

还有一种约定,以下划线开头的名称是内部的,不应由客户端使用。


1
投票

在Python标准库中,模块名称中的前导下划线表示加速器模块:用C编写的模块,提供纯Python版本的更高性能实现,例如_csvcsv。加速器模块在PEP-399中描述。

在标准库之外,前导下划线通常表示私有模块,即不应直接使用的模块。这可能是因为主模块包含包的公共API,而下划线版本包含依赖于实现或平台的代码。

© www.soinside.com 2019 - 2024. All rights reserved.