logo

Understreck (_) i Python

I den här artikeln kommer vi att se Underscore (_) i Python.

Följande är olika platser där _ används i Python:

  • Enkelt understreck:
    • Enkelt understreck i tolk
    • Enkelt understreck efter ett namn
    • Enkelt understreck före ett namn
    • Enkelt understreck i numeriska bokstaver
  • Dubbel understreck:
    • Dubbel understreck före ett namn
    • Dubbel understreck före och efter ett namn

Enkelt understreck

Exempel 1: Enkelt understreck i tolk:

_ returnerar värdet för det senast körda uttrycksvärdet i Python Prompt/Interpreter



Exempel 2: Enkelt understreck för att ignorera värden

Flera gånger vill vi inte att returvärden vid den tiden ska tilldela dessa värden till Underscore. Den används som en slängvariabel.

Python3




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

>

>

Exempel 3: Enkelt understreck efter ett namn

Python har sina som standard nyckelord som vi inte kan använda som variabelnamn. För att undvika en sådan konflikt mellan python nyckelord och variabel använder vi understreck efter namnet

Python3




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

>

>

Produktion:

1>

Exempel 4: Enkelt understreck före ett namn

Ledande Underscore tidigare variabel / fungera / metodnamn indikerar för programmeraren att det endast är för internt bruk, som kan ändras när klassen vill. Här behandlas namnprefix med ett understreck som icke-offentligt. Om specificera från import * alla namn som börjar med _ kommer inte att importeras. Python anger inte riktigt privat så den här kan anropas direkt från andra moduler om den är specificerad i __all__, vi kallar den också svag Privat

Python3




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

>

>

10 12>

Exempel 5: Enkelt understreck i numeriska bokstaver

Python-syntaxen används så att understreck kan användas som visuella avgränsare av siffergrupperingsskäl för att öka läsbarheten. Detta är ett typiskt kännetecken för de flesta aktuella språk och kan underlätta läsbarheten av långa bokstaver, eller bokstaver vars värde tydligt bör separeras i delar.

Python3

partiellt beroende




# 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 understreck före ett namn

Det ledande dubbla understrecket talar om för Python-tolken att skriva om namnet för att undvika konflikter i en underklass. Tolken ändrar variabelnamn med klasstillägg och den funktion som kallas Mangling.

Python3




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

>

>

Ringer från tolk

testFile.py

Python-tolken modifierar variabelnamnet med ___. Så flera gånger den används som en privat medlem eftersom en annan klass inte kan komma åt den variabeln direkt. Huvudsyftet för __ är att använda variabel /method endast i klassen Om du vill använda den utanför klassen kan du göra den offentlig.

Python3




java switch

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

>

>

Ringer från tolk

Dubbel understreck före och efter ett namn

Namnet börjar med __ och slutar med samma med tanke på speciella metoder i Python. Python tillhandahåller dessa metoder att använda som operatörens överbelastning beroende på användaren. Python tillhandahåller denna konvention för att skilja mellan den användardefinierade funktionen med modulens funktion

Python3




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

>

>

Ringer från tolk