复制变量以使其具有更好的名称

时间:2016-12-08 01:32:20

标签: variables coding-style standards

现在我已经想到了一段时间,我似乎无法找到我在网上寻找我的问题,因为你可能从标题中猜到,我真的不知道如何我要问的是一个问题,但我会试着解释一下。

我目前正在使用Python进行作业,我们必须解决单词搜索难题。我正在研究的最后一个阶段是通过找到的单词画线。比方说,我发现一个单词是水平的,我需要的像素坐标是单词第一个字母的xy以及xy的单词BUT的最后一个字母,如果发现一个单词水平移动到最后一个字母,则只更改x坐标。

tldr;

这样的代码会更好:

if found:
    last_x = x + ((len(word) - 1) * direction)
    last_y = y
    foundWords.append(get_new_found_word(x, y, last_x, last_y))  

或者像这样编码会更好:

if found:
    last_x = x + ((len(word) - 1) * direction)
    foundWords.append(get_new_found_word(x, y, last_x, y)) 

为了澄清,此方法中的x和y用于单词搜索网格中的行和列,而不是像素。方向为1或-1(从起始字母向左或向右看)

所以我想问的是,创建变量last_y是否更好,因为它读起来更好,一目了然更容易理解,或者更好地使用y变量是同一个东西还是根本不重要?

非常感谢, 詹姆斯

1 个答案:

答案 0 :(得分:0)

首先,我建议您为xy变量使用更有意义的名称。例如,根据您的评论,x可能已命名为word_pixel_x,而y可能已命名为word_pixel_y。但是,正确的命名应基于代码的其余部分

现在针对您的问题,我的建议是为您的两种不同情况创建两种不同的get_new_found_word方法。一种方法,用于水平找到您的单词,另一种用于对角找到单词的情况。对于第一种情况,您只需传递三个变量,因为ylast_y将是相同的。

例如。

get_new_found_word_horizontally(x, y, last_x)
get_new_found_word_diagonally(x, y, last_x, last_y)

当然,以上只是根据我自己的经验并根据您提供的证据提出的建议。