Разница между одинарным и двойным подчеркиванием Python
Есть 5 кейсов использования подчеркивая в Python:
- Для хранения значения последнего выражения в REPL
- Игнорирования значения
- Для определения специального значения функции или переменной
- одинарное в начале или конце названия
- двойное в начале
- двойное в начале и конце
- Для использования в качестве функции локализации
- Для разделения символов числа (1_00 == 100)
Oct. 10, 2023, Источник
Символы одинарного и двойного подчеркивания имеют разные значения и использования:
1. Одинарное подчеркивание `_`:
- Обычно используется для обозначения временных или ненужных переменных. Например, при распаковке кортежа в цикле можно использовать `_` для игнорирования значений, которые вам не нужны
for _, value in some_list_of_tuples:
# используем только значение, переменная _ игнорируется
print(value)
- Может использоваться для предотвращения конфликтов с зарезервированными словами, такими как `lambda` или `class`. Например:
class_ = "MyClass" # избегаем конфликта с зарезервированным словом class
2. Двойное подчеркивание `__`:
- В начале имени атрибута или метода (например, `__attribute` или `__method`) используется для создания "приватных" атрибутов и методов. Такие атрибуты и методы становятся "скрытыми" внутри класса и не могут быть непосредственно доступны за пределами класса или его подклассов (хотя они могут быть доступны через механизм именования манглинга).
- Используется для имитации перегрузки методов операторов. Например, метод `__add__()` может быть использован для переопределения оператора сложения `+` для объектов класса.
Пример приватного атрибута и перегрузки оператора:
class MyClass:
def __init__(self):
self.__private_attribute = 42
def __add__(self, other):
return self.__private_attribute + other
obj = MyClass()
print(obj.__private_attribute) # Ошибка, так как __private_attribute является приватным атрибутом
print(obj.__add__(8)) # Выведет: 50, перегрузка оператора сложения
Основное различие между одинарным и двойным подчеркиванием заключается в их использовании: одинарное подчеркивание обычно используется для временных переменных или избежания конфликтов имен, в то время как двойное подчеркивание используется для создания приватных атрибутов и методов, а также для перегрузки операторов.
Feb. 17, 2024, easyoffer