我正在寻找一种更好的方法来命名
Python中的所有内容.是的,我读过
PEP8,
Spolsky’s wonderful rant和其他各种文章.但我正在寻找更多指导来选择实际的单词.
是的,我知道
A Foolish Consistency is the Hobgoblin
of Little Minds.
但是,你可以保持与PEP8等一致,但仍然没有一致的变量/方法/类名,易于记忆.一致,我的意思是如果你被提出两次相同的决定,你会产生相同的名称.
例如,有多种符合PEP8标准的方式来命名以下项目:
>表格中的列数
>当前列号
>列对象
>列的总和
是的,当然,很容易决定使用num_col和count_col而不是col_num和col_count(或v.v.).但是,我想看到一个随着时间的推移已经看到一些测试/改进的例子.我经常从一个给定的约定开始,然后当我冒险进入一个新区域时它开始崩溃.
我想我正在寻找的不仅是前缀/ root / tag /后缀应该做什么(Spolsky文章中部分涵盖了匈牙利的应用程序),而是每个的(很多)示例,或者生成每个的例子.
最佳答案 我相信对复杂的变量命名约定的需求随着面向对象的良好设计而消失.在Spolsky文章中,重点关注变量命名如何帮助防止错误.我相信当你在同一范围内有很多变量时,会经常发生这些错误;这可以通过将数据分组到对象中来避免 – 然后,单个命名上下文将只有很少的变量,不需要组合名称.
命名约定的另一个目的是更好地记住名称.同样,面向对象有助于(通过隐藏来自外部的用户的大量数据);你需要的是命名方法的约定,而不是数据.此外,工具可以提供帮助,为您提供特定范围内可用的名称列表(同样,这些工具依靠面向对象来完成工作).
在你的具体例子中,如果column是一个对象,我希望len(table)给我一个表中的列数,sum(column)或column.sum()给我它的总和;并且当前列只是for循环中的变量(通常是c或列).