Menu

Komentarze w Pythonie: jednoliniowe, wieloliniowe i docstringi

Jak pisać komentarze w Pythonie: jednoliniowe z #, bloki na wiele linii i docstringi do dokumentowania funkcji i modułów.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Komentarze są dla ludzi

Python ignoruje komentarze. Na tym polega cała sztuczka. Wszystko, co oznaczysz jako komentarz, jest niewidoczne dla interpretera: istnieje wyłącznie dla osoby czytającej kod, czyli zwykle dla ciebie za pół roku, gdy zaczniesz się zastanawiać, o co wtedy chodziło.

Mimo to komentarz, który tylko powtarza to, co kod oczywiście robi, nie jest wart pisania. Najlepsze komentarze wyjaśniają dlaczego: ograniczenie, obejście, decyzję, której nie widać w samym kodzie. Kod już mówi, co się dzieje.

Komentarze jednoliniowe z #

Podstawowa forma to #, a po nim twoja notatka:

Krótki komentarz możesz też dopisać na końcu linii. Zgodnie z konwencją zostaw przed # co najmniej dwie spacje:

Python traktuje # w dowolnym miejscu poza napisem jako początek komentarza do końca linii. Ważne jest to "poza napisem": # w cudzysłowie to zwykły znak.

#section-2 w napisie jest częścią adresu URL. Python przechodzi w tryb "komentarza" dopiero przy # po zamknięciu napisu.

Zakomentowanie wielu linii

Python nie ma komentarza blokowego /* */. Żeby pominąć kilka linii, postaw # na początku każdej:

Prawie nigdy nie wpisuje się tych # ręcznie. Każdy przyzwoity edytor ma skrót "przełącz komentarz linii", który dodaje albo usuwa # na każdej zaznaczonej linii:

  • VS Code: Cmd + / (macOS) albo Ctrl + / (Windows/Linux)
  • PyCharm: Cmd + / albo Ctrl + /
  • Vim: zależy od wtyczek; vim-commentary przypisuje gcc do pojedynczej linii i gc do zaznaczenia.

Naucz się raz skrótu w swoim edytorze, a "zakomentowanie tego bloku, żeby coś wypróbować" stanie się operacją na jedno naciśnięcie klawisza.

Sztuczka z potrójnym cudzysłowem (i dlaczego to nie jest prawdziwy komentarz)

Czasem zobaczysz taki kod:

Technicznie to wyrażenie z napisem, które zostaje odrzucone. Python je parsuje, oblicza i wyrzuca wynik. Zachowuje się jak komentarz, ale nim nie jest. Stylistycznie to dobry pomysł tylko w jednym konkretnym miejscu: jako docstring.

Docstringi: jedyne miejsce na potrójny cudzysłów

Docstring to napis w potrójnym cudzysłowie umieszczony jako pierwsza instrukcja funkcji, klasy albo modułu. Python rozpoznaje go jako dokumentację i udostępnia w trakcie działania przez funkcję help() i atrybut __doc__:

Docstringi są przydatne z dwóch powodów:

  1. Narzędzia takie jak IDE, help() i generatory dokumentacji czytają je automatycznie. Komentarz nad funkcją nic takiego nie daje.
  2. Opisują funkcję w miejscu wywołania: gdy ktoś najedzie kursorem na discount(...) w edytorze, docstring pojawia się jako podpowiedź.

Istnieje konwencja (PEP 257) dotycząca zawartości docstringa: jednozdaniowe podsumowanie w pierwszej linii, pusta linia, a potem dłuższy opis, jeśli jest potrzebny. Pierwszego dnia nie przejmuj się dokładnym formatem: zwykłe jedno zdanie i tak jest dużo lepsze niż brak docstringa.

Co naprawdę mówią dobre komentarze

Kilka wskazówek, które oszczędzą wielu zmartwień w przyszłości:

  • Opisuj raczej dlaczego niż co. # Loop over the users to szum; # Retry on 503 - Redis sometimes dies mid-deploy to złoto.
  • Aktualizuj komentarze, gdy zmieniasz kod. Błędny komentarz jest gorszy niż żaden. Nieaktualne komentarze aktywnie wprowadzają w błąd przyszłych czytelników.
  • Nie zostawiaj zakomentowanego kodu. Jeśli go nie potrzebujesz, usuń go. System kontroli wersji pamięta. Plik usiany zakomentowanymi blokami szybko traci wiarygodność.
  • Pomijaj oczywistości. x = x + 1 # increment x niczego nie wnosi.

Podsumowanie

Komentarze nic nie kosztują i łatwo je pominąć. Sięgaj po nie, gdy zostawiasz notatkę, za którą czytelnik ci podziękuje: subtelny powód, dla którego coś działa, link do zgłoszenia, ostrzeżenie o przypadku brzegowym. Używaj docstringów, gdy definiujesz funkcję albo klasę. Poza tym niech mówią za ciebie jasne nazwy i małe funkcje.

Masz już wszystko, czego potrzebujesz, żeby czytać i pisać plik Pythona. W następnym rozdziale język naprawdę zaczyna działać: zmienne, typy danych i wartości, które Python potrafi przechowywać.

Najczęściej zadawane pytania

Jak napisać komentarz w Pythonie?

Postaw # na początku linii (albo w dowolnym jej miejscu), a wszystko po # w tej linii będzie komentarzem. Python podczas uruchamiania kodu całkowicie ignoruje komentarze.

Jak zakomentować wiele linii w Pythonie?

Python nie ma osobnej składni komentarza wieloliniowego. Postaw # na początku każdej linii, którą chcesz pominąć. Większość edytorów ma skrót klawiszowy, który przełącza # na wszystkich zaznaczonych liniach naraz, na przykład Cmd/Ctrl + / w VS Code.

Czy napisy w potrójnym cudzysłowie to komentarze w Pythonie?

Nie do końca. Napis w potrójnym cudzysłowie, który nie jest do niczego przypisany, w trakcie działania zachowuje się jak komentarz, ale Python nadal parsuje go jako napis. Ten wzorzec służy głównie do docstringów, czyli dokumentacji funkcji, klas i modułów, a nie do zwykłych komentarzy.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ