我正在破译别人的代码,我看到以下内容:
def get_set_string(set_):
if PY3:
return str(set_)
else:
return str(set_)
变量后面的下划线是什么意思,或者这只是变量名称的一部分并且没有任何意义?
答案 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 是一个关键字。因此,为解决该问题,最后添加了下划线。