Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Underscore after a variable name in Python

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?

like image 560
nanachan Avatar asked Aug 23 '16 19:08

nanachan


People also ask

What does _ after a variable mean Python?

Python automatically stores the value of the last expression in the interpreter to a particular variable called "_." You can also assign these value to another variable if you want. You can use it as a normal variable.

What is __ variable __ in Python?

__var__ : double leading and trailing underscore variables (at least two leading and trailing underscores). Also called dunders. This naming convention is used by python to define variables internally. Avoid using this convention to prevent name conflicts that could arise with python updates.

What does _ and __ mean in Python?

Double Underscore Before a Name (e.g. __shahriar ) The use of double underscore ( __ ) in front of a name (specifically a method name) is not a convention; it has a specific meaning to the interpreter. Python mangles these names and it is used to avoid name clashes with names defined by subclasses.

Why do we use __ in Python?

The Python interpreter modifies the variable name with ___. So Multiple times It uses as a Private member because another class can not access that variable directly. The main purpose for __ is to use variable /method in class only If you want to use it outside of the class you can make it public.


2 Answers

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.

like image 123
Dimitris Fasarakis Hilliard Avatar answered Oct 11 '22 15:10

Dimitris Fasarakis Hilliard


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.

like image 24
Israel Unterman Avatar answered Oct 11 '22 13:10

Israel Unterman