In dit artikel gaan we Underscore (_) in Python zien.
Hieronder volgen verschillende plaatsen waar _ wordt gebruikt in Python:
- Enkel onderstrepingsteken:
- Enkel onderstrepingsteken in tolk
- Eén onderstrepingsteken na een naam
- Eén onderstrepingsteken vóór een naam
- Eén onderstrepingsteken in numerieke letterlijke getallen
- Dubbel onderstrepingsteken:
- Dubbel onderstrepingsteken vóór een naam
- Dubbel onderstrepingsteken voor en na een naam
Enkel onderstrepingsteken
Voorbeeld 1: Enkel onderstrepingsteken in tolk:
_ retourneert de waarde van de laatst uitgevoerde expressiewaarde in Python Prompt/Interpreter
Voorbeeld 2: Enkel onderstrepingsteken voor het negeren van waarden
Meerdere keren willen we op dat moment geen retourwaarden om die waarden toe te wijzen aan Underscore. Het wordt gebruikt als wegwerpvariabele.
Python3
# Ignore a value of specific location/index> for> _>in> range>(>10>)> >print> (>'Test'>)> # Ignore a value when unpacking> a,b,_,_>=> my_method(var1)> |
>
>
Voorbeeld 3: Enkel onderstrepingsteken na een naam
Python heeft standaard trefwoorden die we niet als variabelenaam kunnen gebruiken. Om een dergelijk conflict tussen het Python-trefwoord en de variabele te voorkomen, gebruiken we een onderstrepingsteken achter de naam
Python3
class> MyClass():> >def> __init__(>self>):> >print>(>'OWK'>)> def> my_definition(var1>=>1>,>class_>=>MyClass):> >print>(var1)> >print>(>class_>)> my_definition()> |
tijger vergeleken met leeuw
>
>
Uitgang:
1>
Voorbeeld 4: Enkel onderstrepingsteken vóór een naam
Toonaangevend onderstrepingsteken ervoor variabel / functie / methodenaam geeft aan de programmeur aan dat het alleen voor intern gebruik is en dat het kan worden gewijzigd wanneer de klasse dat wil. Hier wordt het naamvoorvoegsel met een onderstrepingsteken behandeld als niet-openbaar. Indien specificeren van importeren * alle namen die beginnen met _ worden niet geïmporteerd. Python specificeert niet echt privé, dus deze kan rechtstreeks vanuit andere modules worden aangeroepen als deze is opgegeven in __all__. We noemen het ook zwak privé
Python3
class> Prefix:> >def> __init__(>self>):> >self>.public>=> 10> >self>._private>=> 12> test>=> Prefix()> print>(test.public)> print>(test._private)> |
>
>
10 12>
Voorbeeld 5: Enkel onderstrepingsteken in numerieke letterlijke getallen
De Python-syntaxis wordt zodanig gebruikt dat onderstrepingstekens kunnen worden gebruikt als visuele scheidingstekens voor het groeperen van cijfers om de leesbaarheid te vergroten. Dit is een typisch kenmerk van de meeste huidige talen en kan helpen bij de leesbaarheid van lange letterlijke talen, of letterlijke talen waarvan de waarde duidelijk in delen moet worden gescheiden.
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> |
>
>
Dubbel onderstrepingsteken vóór een naam
Het leidende dubbele onderstrepingsteken vertelt de Python-interpreter dat hij de naam moet herschrijven om conflicten in een subklasse te voorkomen. Interpreter verandert de naam van de variabele met klasse-extensie en die functie die bekend staat als de Mangling.
Python3
converteer datum naar string
class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> |
>
>
Bellen via tolk
testFile.py
De Python-interpreter wijzigt de naam van de variabele met ___. Dus meerdere keren wordt het gebruikt als een privélid omdat een andere klasse geen directe toegang heeft tot die variabele. Het belangrijkste doel van __ is om te gebruiken variabel /method alleen in de klas Als je het buiten de klas wilt gebruiken, kun je het openbaar maken.
Python3
class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> >def> func(>self>)> >print>(>self>.__variable)> |
>
>
Bellen via tolk
Dubbel onderstrepingsteken voor en na een naam
De naam begint met __ en eindigt met hetzelfde, rekening houdend met speciale methoden in Python. Python biedt deze methoden om te gebruiken als de operator overbelast, afhankelijk van de gebruiker. Python biedt deze conventie om onderscheid te maken tussen de door de gebruiker gedefinieerde functie en de functie van de module
Python3
class> Myclass():> >def> __add__(>self>,a,b):> >print> (a>*>b)> |
>
>
Bellen via tolk