Underscore after a variable name in Python
Question:
I am deciphering someone else’s code and I see the following:
def get_set_string(set_):
if PY3:
return str(set_)
else:
return str(set_)
Does the underscore AFTER the variable mean anything or is this just a part of the variable’s name and means nothing?
Answers:
It means nothing. I believe the one who wrote this wanted a variable name designating a set, but set
is a type in Python (which creates a set), so he added the underscore.
No semantics are associated with a trailing underscore. According to PEP 8
, the style guide for Python, users are urged to use trailing underscores in order to not conflict with Python keywords and/or Python built-ins:
single_trailing_underscore_
: used by convention to avoid conflicts with Python keyword, e.g.
Tkinter.Toplevel(master, class_='ClassName')
Using set_
means that the built-in name for sets, i.e set
, won’t get shadowed and lose its known reference during the function call.
I am deciphering someone else’s code and I see the following:
def get_set_string(set_):
if PY3:
return str(set_)
else:
return str(set_)
Does the underscore AFTER the variable mean anything or is this just a part of the variable’s name and means nothing?
It means nothing. I believe the one who wrote this wanted a variable name designating a set, but set
is a type in Python (which creates a set), so he added the underscore.
No semantics are associated with a trailing underscore. According to PEP 8
, the style guide for Python, users are urged to use trailing underscores in order to not conflict with Python keywords and/or Python built-ins:
single_trailing_underscore_
: used by convention to avoid conflicts with Python keyword, e.g.
Tkinter.Toplevel(master, class_='ClassName')
Using set_
means that the built-in name for sets, i.e set
, won’t get shadowed and lose its known reference during the function call.