2017-10-17 95 views
3

我希望这个问题不会被封闭/低估,因为它花费了我编码时间的很大一部分时间。缩短代码中单词的最佳标准是什么?

作为一个更专注于Python的开发人员,我尝试遵循PEP8标准,但对于某些变量名称,它变得非常棘手。

让我们来说一句TEMPERATURE。

如果我想有一个变量来存储温度的名单,我将它命名为:

temperature_list = [] 

然而,随着代码变得越来越复杂,比方说我要打电话与temperature_list功能作为参数:

calling_function(variable_with_long_name, temperature_list, another_long_name_variable) 

你可以清楚地看到它会导致...

所以我决定重新命名temperature_listtemp_list。这听起来很不错,对吗?

除...

如果我也想临时文件存储在一个列表中,可能会出现我有:

temp_list = [] 
temp_file_list = [] 

它可能会到我的变量开始乱搞和点使代码变得有点棘手。

什么是约定和程序员在面对这种情况时所做的其他操作?对于这种情况,是否有任何参考依据,如某些名词的变量名称好的案例集?

- 编辑

如果你投票关闭它,至少得解释为什么! - '

+4

PEP 8表示“反映的是使用而不是实现”,这表明大多数情况下,您不应该在变量名中包含类型名称。将名字简化为“温度”应该足以向读者指出“这是一个可以迭代并且可能被索引的非标量对象”,这对于常见情况来说已经足够了。 (作为评论发布而不是答案,因为这是我自己的主观解释) – Kevin

+1

在你的职业生涯中发生这种事情的次数 - 需要像“TEMPERATURE”和“TEMPORARY”这样的词 - 将会非常小。在现实世界中,如果您编写明智的代码,长名称并不是什么大问题。 –

+0

@Kevin你应该重新发布你的评论作为答案。 –

回答

1

通常,您需要找到聪明的名字,这些名字不会太长,但可以正确解释变量。当这失败了,或者有太多的变量做类似的工作(所以会有近距离的名字),你可以选择在文档字符串或注释中解释变量,并给出短名称(仍然有意义的名称,而不是a,b等) ...)

def function(a, b): 
    """ 
    l_variable used for bla bla, 
    lo_variable is good for bla bla. 
    """ 

    l_variable = 12 
    lo_variable = 123 
    lon_variable = 1234 # This is an integer bla bla 

当你真正拥有长变量名,在那里我有时无法避免自己的需要,我尝试在不破坏代码的目的是降低线的长度。例如在函数调用中断行(例如在你的例子中)。

def f(a, b, c): 
    print a + b + c 

this_is_a_long_variable_name = "Stack" 
this_is_an_even_longer_variable_name = "Over" 
this_is_the_longest_variable_name_in_this_example = "flow" 

f(this_is_a_long_variable_name, 
    this_is_an_even_longer_variable_name, 
    this_is_the_longest_variable_name_in_this_example)