根据你的解释,这可能是也可能不是一个反问句,但这确实让我感到困惑。这个公约有什么意义呢?我知道命名约定不一定要有韵律或背后的原因,但为什么要偏离已经流行的驼峰命名法呢?Is there背后的韵律和理由lower_case_with_underscores我不知何故失踪了? (是的,我已经完整阅读了 PEP 8,是的,我确实明白这只是一个提案、指南等。)
我想我真正的问题是:我正在编写一个 Python 库。事实上,如果运气好的话,相对于我的其他项目来说,它可能是一个相当大的库。我已经尝试尽可能地遵守 PEP 8,到目前为止我什至一直坚持lower_case_with_underscores正如 PEP 8 中关于函数和方法名称的说明。但令我烦恼的是,我必须记住对 Twisted 使用驼峰命名法,对 Twisted 使用驼峰命名法logging,以及其他一切。我应该使用什么命名约定,为什么?
camelCase and/or CamelCase(这本身就是一个争论;-)对于这种环境来说可能是最受欢迎的you是最熟悉的,但这很难使它们具有通用性——或者您从未听说过名为 C++ 的晦涩语言,它的std::find_first_of and std::replace_copy_if算法之类的?!
因此,正如您所说,PEP 8 中不存在“偏差”——只是选择 C++ 标准约定,而不是 Java 或 C# 中更流行的约定。
至于你应该对自己的代码做什么,只需选择一个约定并坚持下去——一致性比其他考虑因素更重要。我的雇主使用CamelCase所有内部源的所有语言的约定(尽管不一定在公开公共 API 时,这是一个单独的问题),我个人讨厌它(我希望我可以销毁every在整个编程领域都依赖区分大小写!-),但我坚持这样做,并且实际上帮助强制执行它(在代码审查中),因为一致性is重要的。