在Python中使用变量名称后下划线

时间:2016-08-23 19:37:54

标签: python python-3.x naming-conventions

我正在破译别人的代码,我看到以下内容:

def get_set_string(set_):
     if PY3:
         return str(set_)
     else:
         return str(set_)

变量后面的下划线是什么意思,或者这只是变量名称的一部分并且没有任何意义?

3 个答案:

答案 0 :(得分:21)

没有语义与尾随下划线相关联。根据Python的样式指南PEP 8,用户被要求使用尾随下划线,以免与Python关键字和/或Python内置函数冲突:

  

single_trailing_underscore_:按惯例用于避免与Python关键字冲突,例如

     

Tkinter.Toplevel(master, class_='ClassName')

使用set_意味着集合的内置名称,即set,在函数调用期间不会被遮蔽并丢失其已知引用。

答案 1 :(得分:6)

没有任何意义。我相信写这个的人想要一个变量名来指定一个集合,但是set是Python中的一个类型(创建一个集合),所以他添加了下划线。

答案 2 :(得分:0)

写这个的人之所以这么做是因为 set 是一个关键字。因此,为解决该问题,最后添加了下划线。