簡體   English   中英

Python 序列命名約定

[英]Python sequence naming convention

由於 python 中沒有明確的類型,我希望能夠使用命名約定來區分序列和非序列。 我已經用 python 編程了一段時間,但我仍然沒有找到任何邏輯/實用的方式來命名序列。 當然,我瀏覽了著名的PEP8 ,並在 google 上做了一些研究,似乎接受的約定是在變量名的末尾添加字母“s”。

假設我們有一個“權重值”序列,因此序列的變量名應該是weights 到目前為止,這很好,但是在某些情況下,某些單詞以“s”結尾並且恰好是命名不是序列的變量的更合乎邏輯的方式。 或者假設您將權重序列本身存儲在一個序列中。 “s”命名約定將命名變量weightss ,這很難看。 我確信序列有更好的命名約定。

你會建議什么樣的序列命名約定?

一般來說,避免這種行為。 來自PEP8的通知

愚蠢的一致性是小精靈的妖精

這正是調用可變weightss重所做的事情。 所以通常讓你的變量描述它們是什么,而不是根據一些命名約定:

weights = [44, 66, 88]
weight_groups = [[44, 66, 88], ...]

等等

PEP8的同一部分:

但最重要的是:知道何時不一致——有時風格指南並不適用。 如有疑問,請使用您的最佳判斷。 查看其他示例並決定什么看起來最好。 不要猶豫,問!

“s”命名約定將命名變量權重,這很難看。 我確信序列有更好的命名約定。

我認為您所描述的約定應被解釋為“每當您列出某物時,請通過將其復數來明確它是一個列表”。 例如,如果您有一個草實例列表,您可以將此稱為grasses ,而不是grasss 我不認為它是按字面意思理解的。

PEP 總是建議您采用自己的方法,如果這種方法更具可讀性和實用性的話。 正如阿里所提到的,PEP 的指導原則之一是你不應該成為愚蠢一致性的犧牲品。

無論你的小心臟想要什么......

開個玩笑,但我不會掛斷電話的。 如果它很難看,請做一些事情以使其更具可讀性,例如seq_weightseq_weights

為什么不只是thing_listthing_seq

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM