Странная переменная в Python.
Когда человек впервые видит в программе что-то вроде
В командной строке интерпретатора нижнее подчеркивание хранит значение последнего выражения. Пользоваться ей можно вот так:
В общем, в Python у переменной
🥳 она хранит последнее вычисленное интерпретатором значение,
🥳 и ее принято использовать, чтобы проигнорировать значение переменной.
#underscores #словари #соглашения #основы
Когда человек впервые видит в программе что-то вроде
_, 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 у переменной
_
две функции: 🥳 она хранит последнее вычисленное интерпретатором значение,
🥳 и ее принято использовать, чтобы проигнорировать значение переменной.
#underscores #словари #соглашения #основы
🔥3
Одинарное подчеркивание в конце переменной
Недавно говорила об одинарном символе подчеркивания в Python. Теперь поговорим о подчеркивании в конце переменной:
В общем, в Python есть соглашение по использованию подчеркивания в конце переменной. Подчеркивание обычно добавляют, когда название переменной конфликтует с уже занятыми интерпретатором именами. Мое мнение, что в случае конфликта лучше просто попытаться выбрать другое имя.
#underscores #нейминг #соглашения #основы #кодстайл
Недавно говорила об одинарном символе подчеркивания в Python. Теперь поговорим о подчеркивании в конце переменной:
Нет никаких причин так делать, кроме одной: имя, которое вы хотите дать переменной, конфликтурет с именем встроенной функции или ключевого слова в Python. В PEP8, документе, который закрепляет соглашения по кодстайлу в Python, написано следующее:
my_argument_ = 10
single_trailing_underscore_
: используется по соглашению для избежания конфликтов с ключевыми словами языка, например:Поэтому в этом примере лучше просто написать
Tkinter.Toplevel(master, class_='ClassName')
my_argument
, без подчеркивания. А вот если вам понадобится, например, что-то из id
, class
, del
, ..., то можно добавить _
. Правда, даже в этом случае я сама обычно выбираю более объясняющее имя, например, person_id
, class_name
, delimeter
, чтобы не путать коллег и сделать код более читаемым. В общем, в Python есть соглашение по использованию подчеркивания в конце переменной. Подчеркивание обычно добавляют, когда название переменной конфликтует с уже занятыми интерпретатором именами. Мое мнение, что в случае конфликта лучше просто попытаться выбрать другое имя.
#underscores #нейминг #соглашения #основы #кодстайл
🔥2