2016-08-23 5 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 (который создает набор), поэтому он добавил подчеркивание.