将CamelCase作为小写导入是否符合PEP8?

2024-04-30 00:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

根据PEP8模块应该是小写的。然而,一些流行的(如Gtk)遵循CamelCase惯例。在

为了拥有一个pythonic代码库并减少此策略违反的溢出,以下似乎是一种干净的处理方法:

import CamelcasedModule as camelcased_module

然而,诸如pep8-naming的linter声称这种做法违反了PEP8并抛出了一个N813错误。在

因为在PEP8中我没有找到任何直接的段落来解决这个问题,所以我想知道怎样才能保持python的禅。在

网站说明: 前面这个问题以Gtk为例:

^{pr2}$

这是误导性的,因为Gtk是一个类而不是模块,因此不适用于问题。为了提高透明度,并且因为对这个问题的答案可能仍然有用,所以这里提到了这个问题。在


Tags: 模块方法代码importgtkaspythonic策略
2条回答

我赞同托马斯·普拉斯科塔的回答,即这确实是一种反模式,我想修正:

在pep8的“公共和内部接口”章节中:

Imported names should always be considered an implementation detail. Other modules must not rely on indirect access to such imported names unless they are an explicitly documented part of the containing module's API, such as os.path or a package's init module that exposes functionality from submodules.

否则,很明显,即使是标准库也会稳定地清理,使类CamelCase和模块的下标都是小写的。。。在

一开始我只略过了这个问题,并储存了更多的试验:

import Gtk as gtk

导入时的别名我经常使用-,但在经典的本地快捷方式用例中更多:

为你的工具导入非常令人印象深刻的分层命名作为我们的工具

或者像著名的带有datetime类的datetime模块的自我重写有趣的例子:

^{pr2}$

然后可以在实际的客户端代码中使用like:

a_datetime = dt.datetime.now()

Gtk是类而不是模块。Class names应该使用CapWords约定。在

你可以阅读更多关于here的内容。在

相关问题 更多 >