Jaki jest cel pojedynczej zmiennej podkreślenia "" w Pythonie?

Jakie jest znaczenie _ po for w tym kodzie?

if tbh.bag:
   n = 0
   for _ in tbh.bag.atom_set():
      n += 1
Author: gsamaras, 2011-05-05

4 answers

_ mA 3 główne konwencjonalne zastosowania w Pythonie:

  1. do przechowywania wyniku ostatniego wykonanego wyrażenia(/instrukcji) w interaktywnej sesja tłumacza. Precedens ten został ustanowiony przez standard CPython Tłumacz, a inni Tłumacze poszli w ślady
  2. do wyszukiwania tłumaczeń w i18n (zobacz gettext dokumentacji np.), jak w kodzie jak: raise forms.ValidationError(_("Please enter a correct username"))
  3. jako nazwa zmiennej ogólnego przeznaczenia "throwaway", aby wskazać, że część wyniku funkcji jest być celowo ignorowane, jak w kodzie jak: label, has_label, _ = text.partition(':')

Te dwa ostatnie cele mogą być sprzeczne, dlatego należy unikać używania _ jako zmiennej typu throwaway w dowolnym bloku kodu, który używa jej również do tłumaczenia i18n (wielu ludzi woli podwójne podkreślenie, __, jako zmiennej typu throwaway właśnie z tego powodu).

 613
Author: ncoghlan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-23 07:32:42

To tylko nazwa zmiennej i w Pythonie zwyczajowe jest używanie _ dla zmiennych odrzucanych. Oznacza to tylko, że zmienna pętli nie jest w rzeczywistości używana.

 162
Author: gsteff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-05 05:47:50

Podkreślenie _ jest traktowane jako" I don ' t Care "lub" Throwaway " zmienna w Pythonie

  • Interpreter Pythona przechowuje ostatnią wartość wyrażenia do specjalnej zmiennej o nazwie _.

    >>> 10 
    10
    
    >>> _ 
    10
    
    >>> _ * 3 
    30
    
  • Podkreślnik _ jest również używany do ignorowania określonych wartości. Jeśli nie potrzebujesz określonych wartości lub wartości nie są używane, po prostu Przypisz wartości do podkreślenia.

    Ignoruj wartość, gdy rozpakowywanie

    x, _, y = (1, 2, 3)
    
    >>> x
    1
    
    >>> y 
    3
    

    Ignoruj indeks

    for _ in range(10):     
        do_something()
    
 32
Author: Ashish Sahu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-12 14:37:42

Jest 5 przypadków użycia podkreślenia w Pythonie.

  1. Do przechowywania wartości ostatniego wyrażenia w interpreterze.

  2. Do ignorowania określonych wartości. (tzw. "I don ' t care")

  3. Nadawanie specjalnych znaczeń i funkcji nazwom zmiennych lub funkcji.

  4. Aby używać jako funkcji "Internacjonalizacja (i18n)" lub " lokalizacja (l10n)".

  5. Aby oddzielić cyfry liczby literalnie wartość.

Tutaj jest ładny artykuł z przykładami przez mingrammer .

 11
Author: Reck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-13 08:49:43