2016-08-23 109 views
7

一个变量名后,我破译别人的代码,我看到以下内容:下划线在Python

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

是否下划线的变量之后意味着什么或者这只是变量名的一部分,意味着什么?

+0

这只是名称的一部分。你需要问作者。 –

+5

这是为了区别它与'set',内置的集合类型,以避免名称的阴影 - [*''single_trailing_underscore_':常规使用,以避免与Python关键字冲突*](https://www.python .ORG的/ dev/PEPS/PEP-0008 /#描述命名的样式)。 – jonrsharpe

+0

谢谢你澄清这一点 – nanachan

回答

9

没有语义与尾部下划线相关联。据PEP 8,风格指南Python中,用户被敦促使用尾随为了强调不与Python的关键字和/或Python的内置插件冲突:

single_trailing_underscore_:使用约定,以避免与Python关键词的冲突,例如

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

使用set_意味着,内置名称集,即set,不会得到阴影和失去函数调用期间其已知的参考。

4

这意味着什么。我相信写这个的人想要一个指定集合的​​变量名,但set是Python中的一个类型(它创建了一个集合),所以他添加了下划线。