Найти тему
Машинное обучение

Странная переменная в Python.

Когда человек впервые видит в программе что-то вроде 

 _, v in my_dict.items():

  pass 

он обычно теряется. Что это за переменная _?   

В командной строке интерпретатора нижнее подчеркивание хранит значение последнего выражения. Пользоваться ей можно вот так: 

 

>>> a + b

20

>>> _

20

>>> _ * 2

40

В интерпретаторе это позволяет вообще не писать названия переменных и работать быстрее: 

 

>>> list()

[]

>>> _.append(‘чепуха’)

>>> _.append(‘небылица’)

>>> _.append(‘выдумка’)

>>> _

[‘чепуха’, ‘небылица’, ‘выдумка’]

При этом _ -- абсолютно валидное имя. Настолько, что в скриптах его принято использовать для dummy-переменных, значениями которых пользоваться не собираются. Например:

 

for _ in range(4):

  print(“Шутка, повторенная дважды, становится в 4 раза смешнее”)

Или вот так: 

 _, c = ['чепуха', 'небылица', 'выдумка']

print(‘{} {}’.format(a, c))

'чепуха, выдумка'

С другой стороны, если заводите переменную, значение которой вам не нужно, подумайте, стоит ли вообще это делать. В самом первом примере 

 

for _, v in my_dict.items():

  pass 

можно было с тем же успехом использовать values(). 

В общем, в Python у переменной _ две функции: 

🥳 она хранит последнее вычисленное интерпретатором значение,

🥳 и ее принято использовать, чтобы проигнорировать значение переменной.

Python/ django
Python RU

Наука
7 млн интересуются