gpt4 book ai didi

python - 在 Python 中实际选择单词的命名约定,符合 PEP8

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:49 24 4
gpt4 key购买 nike

我正在寻找一种更好的方法来命名 Python 中的所有内容。是的,我读过PEP8 , Spolsky’s wonderful rant ,以及其他各种文章。但我正在寻找更多关于选择实际单词的指导。

是的,我知道

A Foolish Consistency is the Hobgoblin of Little Minds.

但是,你可以保持与 PEP8 等保持一致,但仍然没有一致的易于内存的变量/方法/类名称。一致的意思是,如果两次向您提出相同的决定,您将产生相同的名字。

例如,有多种符合 PEP8 的方式来命名以下项目:

  • 表格中的列数
  • 当前列号
  • 列对象
  • 列总和

是的,当然,很容易决定使用 num_colcount_col 而不是 col_numcol_count (或 v.v.)。但是,我希望看到一个随着时间的推移进行了一些测试/改进的示例。我经常从一个给定的惯例开始,然后当我冒险进入一个新领域时它开始崩溃。

我想我正在寻找的不仅是前缀/根/标签/后缀应该做什么(Spolsky 文章中的 Apps Hungarian 部分介绍了这一点),而且还有每个示例的(许多)示例,或规则生成每一个。

最佳答案

我相信良好的面向对象设计不需要复杂的变量命名约定。在 Spolsky 文章中,重点关注变量命名如何帮助防止错误。我相信当您在同一范围内有许多变量时,这些错误会更频繁地发生;这可以通过将数据分组到对象中来避免 - 然后,单个命名上下文将只有几个变量,不需要组合名称。

命名约定的另一个目的是更好地记住名称。同样,面向对象有帮助(通过对从外部查看的用户隐藏大量数据);然后你需要的是命名方法的约定,而不是数据。此外,工具可以帮助您提供特定范围内可用的名称列表(同样,这些工具依赖于面向对象来完成它们的工作)。

在你的具体例子中,如果列是一个对象,我希望 len(table) 给我一个表中的列数,sum(column)或者 column.sum() 给我它的总和;并且当前列只是 for 循环中的变量(通常是 ccolumn)。

关于python - 在 Python 中实际选择单词的命名约定,符合 PEP8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com