logo

Підкреслення (_) у Python

У цій статті ми побачимо підкреслення (_) у Python.

Нижче наведено різні місця, де _ використовується в Python:

  • Одинарне підкреслення:
    • Одинарне підкреслення в Інтерпретаторі
    • Одинарне підкреслення після імені
    • Одинарне підкреслення перед назвою
    • Одинарне підкреслення в числових літералах
  • Подвійне підкреслення:
    • Подвійне підкреслення перед назвою
    • Подвійне підкреслення перед і після імені

Одинарне підкреслення

Приклад 1: одинарне підкреслення в інтерпретаторі:

_ повертає значення останнього виконаного виразу в Python Prompt/Interpreter



Приклад 2: одинарне підкреслення для ігнорування значень

Кілька разів ми не хочемо, щоб повертані значення в той час призначали ці значення підкресленню. Він використовується як змінна, що викидається.

Python3




# Ignore a value of specific location/index> for> _>in> range>(>10>)> >print> (>'Test'>)> # Ignore a value when unpacking> a,b,_,_>=> my_method(var1)>

>

>

Санджай Датт і

Приклад 3: одинарне підкреслення після імені

У Python за замовчуванням є ключові слова, які ми не можемо використовувати як назву змінної. Щоб уникнути такого конфлікту між ключовим словом python і змінною, ми використовуємо підкреслення після імені

Python3


vlc media player завантажити youtube



class> MyClass():> >def> __init__(>self>):> >print>(>'OWK'>)> def> my_definition(var1>=>1>,>class_>=>MyClass):> >print>(var1)> >print>(>class_>)> my_definition()>

>

>

Вихід:

1>

Приклад 4: одинарне підкреслення перед назвою

Попереднє підкреслення змінна / функція / ім'я методу вказує програмісту, що він призначений лише для внутрішнього використання, який можна змінювати будь-коли, коли забажає клас. Тут префікс імені з підкресленням розглядається як непублічний. Якщо вказати з імпорту * усі імена, які починаються з _, не будуть імпортовані. Python не вказує справді приватний, тому його можна викликати безпосередньо з інших модулів, якщо він указаний у __all__, ми також називаємо його слабкий Рядовий

Python3




class> Prefix:> >def> __init__(>self>):> >self>.public>=> 10> >self>._private>=> 12> test>=> Prefix()> print>(test.public)> print>(test._private)>

>

>

10 12>

Приклад 5: одинарне підкреслення в числових літералах

Синтаксис Python використовується таким чином, що підкреслення можна використовувати як візуальні розділювачі для групування цифр для покращення читабельності. Це типова особливість більшості сучасних мов і може допомогти в читабельності довгих літералів або літералів, значення яких слід чітко розділити на частини.

Python3

модель будівельника




# grouping decimal for easy readability of long literals> amount>=> 10_000_000>.>0> # grouping hexadecimal for easy readability of long literals> addr>=> 0xCAFE_F00D> # grouping bits for easy readability of long literals> flags>=> 0b_0011_1111_0100_1110>

>

>

Подвійне підкреслення перед назвою

Початкове подвійне підкреслення повідомляє інтерпретатору Python переписати назву, щоб уникнути конфлікту в підкласі. Інтерпретатор змінює назву змінної за допомогою розширення класу та цієї функції, відомої як Mangling.

Python3




рядок для чату

class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10>

>

>

Дзвінок від перекладача

testFile.py

Інтерпретатор Python змінює назву змінної на ___. Тому кілька разів він використовується як приватний член, оскільки інший клас не може отримати прямий доступ до цієї змінної. Основна мета __ — використовувати змінна /метод лише в класі Якщо ви хочете використовувати його поза класом, ви можете зробити його загальнодоступним.

Python3




class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> >def> func(>self>)> >print>(>self>.__variable)>

>

>

css жирний

Дзвінок від перекладача

Подвійне підкреслення перед і після імені

Ім’я починається з __ і закінчується тим самим, враховуючи спеціальні методи в Python. Python надає ці методи для використання як перевантаження операторів залежно від користувача. Python забезпечує цю угоду, щоб відрізнити визначену користувачем функцію від функції модуля

Python3




class> Myclass():> >def> __add__(>self>,a,b):> >print> (a>*>b)>

>

>

Дзвінок від перекладача