变量名称在名词之前或之后是否有形容词?

Kar*_*rus 11 c++ python naming-conventions

我发现在变量的命名约定中我经常有点不一致,我只是想知道人们认为什么是最好的方法.我所讨论的具体约定是变量需要由名词和形容词描述,以及形容词是否应该在名词之前或之后.这个问题在所有编程语言中都是通用的,尽管我个人使用的是C++和Python.

例如,考虑编写一个GUI,它有两个按钮; 一个在右边,一个在左边.我现在需要创建两个变量来存储它们.一种选择是在名词之前加上形容词,并称之为left_button,和right_button.另一种选择是在名词后面加上形容词,并称之为button_left,和button_right.对于第一种情况,在大声朗读时更有意义,因为在英语中,你总是将形容词放在名词之前.但是,对于第二种情况,它有助于在语义上构造数据,因为它button揭示了关于变量的最多信息,left或者right是补充信息.

所以你怎么看?形容词应该在名词之前还是之后?或者它是完全主观的?

小智 6

我认为在名词之前写形容词是更常见的事情。但如果你想一想,在阅读代码时将其写在名词后面会更容易。形容词很容易被视为名词的属性。从逻辑思维方式来看,我认为这是更好的方式。


cra*_*jun 6

我尝试使用,noun_adj因为它符合我用于功能的东西.当我编写函数时,我倾向于使用verb_noun_adj,例如:

def get_button_id():
    """Get id property of button object."""
    pass
Run Code Online (Sandbox Code Playgroud)

这更清楚地告诉我,get_id_button因为你在这里得到的并不完全清楚:它是获取button.id还是获得了一个名为"id"的按钮,甚至可能是其他东西?除非你将名称扩展得更清楚,get_id_of_button否则对你来说可能有点过于冗长.

对我在这里所做的事情可能有一个同样有效的论据,但至少我在疯狂中是一致的吗?

  • 你说 `verb_noun_adj` 的一个例子是 `get_button_id`,但 `get_button_id` 实际上是 `verb_adj_noun` 的一个例子。这个名词不是“button”,而是“id”。该函数获取一个“id”。什么样的“id”?这是用形容词“按钮”来描述的。该函数获取一个“button”“id”。因此,“verb_noun_adj”的一个例子实际上是“get_id_button”,这是误导性的。该函数没有获取“button”对象,而是获取“id”属性。这就是为什么形容词应该出现在名词之前,就像英语中那样。 (2认同)