由于python中没有显式输入,我希望能够使用命名约定区分序列和非序列.我已经用python编程了一段时间,我仍然没有找到任何逻辑/实用的方法来命名序列.当然,我经历了着名的PEP8,并对谷歌做了一些研究,似乎接受的惯例是在变量名的末尾添加字母"s".
假设我们有一系列"权重值",因此序列的变量名称应该是权重.到目前为止,这很好,但是有些情况下,某些单词以"s"结尾,恰好是命名变量的更合理的方式,而不是序列.或者,假设您将权重序列存储在序列中."s"命名约定将命名变量weightss,这很难看.我确信序列的命名约定更好.
您建议使用什么序列命名约定?
一般来说,避免这种行为.来自PEP8的通知
愚蠢的一致性是小思想的大人物
这正是调用变量weightss
所做的事情.所以通常你的变量描述它们是什么,而不是根据一些命名约定:
weights = [44, 66, 88] weight_groups = [[44, 66, 88], ...]
等等
从PEP8的同一部分:
但最重要的是:知道何时不一致 - 有时风格指南不适用.如有疑问,请使用您的最佳判断.查看其他示例并确定最佳效果.并且不要犹豫!
"s"命名约定将命名变量weightss,这很难看.我确信序列的命名约定更好.
我认为你所描述的约定意味着被解释为"每当你有一些东西的清单时,通过多元化它就清楚它是一个列表".例如,如果您有一个草实例列表,您可以调用它grasses
,而不是grasss
.我不认为这意味着你要把它当作字面意思.
如果更可读和有用,PEP总是建议您采用自己的方法.正如阿里所说,PEP的指导原则之一就是你不应该成为愚蠢的一致性的牺牲品.