我们应该为python变量名使用哪些缩写?

时间:2010-12-05 12:45:26

标签: python syntax formatting naming-conventions

通常我使用PEP-8中规定的标准命名变量。像:

delete_projects
connect_server

然而,有时候我找不到任何好名字,这个名字只会扩展到很长的名字:

project_name_to_be_deleted 

我可以使用pr_nm_del,但这会使代码无法读取。我真的很痛苦为函数找到好的变量名。每当我开始编写新函数时,我只是花时间找到一个好的变量名。

是否有任何标准可以为众所周知的变量名称选择某些缩写,例如delete,project,configuration, etc.?你如何选择简短但又好又可读的变量名?

这个问题可能不直接依赖于Python,但由于不同的编程语言使用不同的变量名称格式,我认为我将此问题限制为仅限Python

5 个答案:

答案 0 :(得分:5)

pr_nm_del?你不妨让一只猫给它命名。我认为应该不惜一切代价避免使用缩写,除了众所周知/明显的缩写(如del,如评论中提到的那样 - 甚至是一个语言关键字!)可以节省大量的输入。

但这并不意味着过于冗长的标识符。正如上下文对于理解自然语言中的语句很重要一样,通过引用上下文,标识符通常可以保持更短(并且可以理解)。在您的示例中,project_name完全正常 - 该过程已被称为delete_project,因此project_name显然是指要删除的项目的名称。即使只有name也可能没问题。无需通过附加_to_be_deleted再次声明。

答案 1 :(得分:1)

在您的示例中,您有一个名为delete_project的函数。想知道如何调用存储要删除的项目的变量?只是'项目'!

def delete_project(self, project):
    del self.projects[project]

简单。

变量名称不必是完全描述性的。上下文可以为我们在特定时间点理解特定名称提供很多帮助。在讨论删除项目的函数时,无需说“这是要删除的项目”。

如果你发现功能名称太长,它们可能做得太多了。如果您发现变量名称变得太长,请考虑它们在当前上下文中的用途,并查看是否可以隐含部分名称。

答案 2 :(得分:1)

当你在进行OOP时,这是一个解决问题的问题。主语(project, configuration)是类,动词(delete, etc)是方法名称,即:

class Workspace(object):

   def delete_project(self, project):
       log.info("Deleting", project.name)
       ...

答案 3 :(得分:0)

我认为长名称是可以接受的,只要它们是描述性的。使用良好的编辑器/ IDE,短名称无法保存输入,而长而描述性的名称可以节省读取代码的时间。因此,名称的阅读时间长度比名称的实际长度重要得多。

至于你的例子,project_name_to_be_deleted没问题。如果您想缩短它,我建议您使用project_name_to_del,因为deldelete的众所周知的缩写(您甚至可以在键盘中找到它)。使用conf作为configuration也很受欢迎。但不要走得更远。例如,proj2del不是一个好主意。

此外,对于内部/本地事物,使用简短的描述性名称也没关系。

答案 4 :(得分:0)

很少有名字有“标准”缩写。您认为“共同”或“标准”对于其他人来说并不相同。 设置一个好名字所花费的时间是很好的投入,因为代码的读取频率比写入的频率高得多。 举个例子,我见过  “组态” 缩写为  “配置”  “CNFG”  “CFG”  “CNF” ...所以教训是 - 除非有一个众所周知的缩写,否则不要缩写!

相关问题