出于什么原因,我们采用 lower_case_with_underscores 命名约定? [关闭]

2024-02-18

根据你的解释,这可能是也可能不是一个反问句,但这确实让我感到困惑。这个公约有什么意义呢?我知道命名约定不一定要有韵律或背后的原因,但为什么要偏离已经流行的驼峰命名法呢?Is there背后的韵律和理由lower_case_with_underscores我不知何故失踪了? (是的,我已经完整阅读了 PEP 8,是的,我确实明白这只是一个提案、指南等。)

我想我真正的问题是:我正在编写一个 Python 库。事实上,如果运气好的话,相对于我的其他项目来说,它可能是一个相当大的库。我已经尝试尽可能地遵守 PEP 8,到目前为止我什至一直坚持lower_case_with_underscores正如 PEP 8 中关于函数和方法名称的说明。但令我烦恼的是,我必须记住对 Twisted 使用驼峰命名法,对 Twisted 使用驼峰命名法logging,以及其他一切。我应该使用什么命名约定,为什么?

我如此关心命名,以至于写了一个很长的问题,这可能会让人们感到惊讶,这也让我感到惊讶。也许我在这些事情上有点强迫症。我对此没有太多的“个人意见”,因为我倾向于选择最常用的形式,在这种情况下,将是驼峰命名法 - 但更让我恼火的是发现我可能违反了一些关于显式与隐式以及Python的禅宗之类的永恒法则。


camelCase and/or CamelCase(这本身就是一个争论;-)对于这种环境来说可能是最受欢迎的you是最熟悉的,但这很难使它们具有通用性——或者您从未听说过名为 C++ 的晦涩语言,它的std::find_first_of and std::replace_copy_if算法之类的?!

因此,正如您所说,PEP 8 中不存在“偏差”——只是选择 C++ 标准约定,而不是 Java 或 C# 中更流行的约定。

至于你应该对自己的代码做什么,只需选择一个约定并坚持下去——一致性比其他考虑因素更重要。我的雇主使用CamelCase所有内部源的所有语言的约定(尽管不一定在公开公共 API 时,这是一个单独的问题),我个人讨厌它(我希望我可以销毁every在整个编程领域都依赖区分大小写!-),但我坚持这样做,并且实际上帮助强制执行它(在代码审查中),因为一致性is重要的。

我想,只有当您必须依靠屏幕阅读器向您朗读代码时,您才会明白为什么依赖区分大小写是一个可怕的想法——大多数屏幕阅读器在查明大小写问题方面做得很糟糕,而且没有非常好的方法,没有强大或简单的约定将大小写差异转换为简单的听觉线索(同时将下划线翻译为“点击”,在一个良好的可配置屏幕阅读器中,使其变得轻而易举)。对于没有任何视力障碍的人(毫无疑问是 90% 或更多),你不需要关心(除非你想包容并帮助那些有视力障碍的人)don't分享你完美视力的天赋……不,谁在乎those伙计们,对吧?!)。

但是,一致性仍然很重要,并且对每个人都有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

出于什么原因,我们采用 lower_case_with_underscores 命名约定? [关闭] 的相关文章

随机推荐