Ak funkcia vo svojom tele hneď ako prvý riadok obsahuje znakový reťazec (zvykne byť viacriadkový s '''
), tento sa stáva, tzv. dokumentačným reťazcom (docstring). Pri vykonávaní tela funkcie sa takéto reťazce ignorujú (preskakujú). Tento reťazec (docstring) sa, ale môže neskôr vypísať, napríklad štandardnou funkciou help()
.
Ako to vyzerá v kóde:
>>> def vypis_hello():
'''Funkcia vypíše reťazec hello world
následne, priradí premennú prem
a znova vypíše premennú prem.'''
print("hello world")
prem = 10
print(prem)
>>> help(vypis_hello)
Help on function vypis_hello in module __main__:
vypis_hello()
Funkcia vypíše reťazec hello world
, priradí premennú prem
a následne vypíše premennú prem.
Takto definovaná funkcia funguje rovnako, ako keby žiaden dokumentačný reťazec neobsahovala. Tu môžeme vidieť užitočnú vlastnosť Pythonu: programátor, ktorý vytvára nejaké nové funkcie, môže hneď vytvárať aj malú dokumentáciu o jej používaní pre ďalších programátorov.
Pri takomto spôsobe samodokumentácie funkcií si treba uvedomiť, že Python v tele funkcie ignoruje nielen všetky reťazce, ale aj iné konštanty:
- ak napríklad zavoláme funkciu, ktorá vracia nejakú hodnotu a túto hodnotu ďalej nespracujeme (napríklad priradením do premennej, použitím ako parametra inej funkcie, …), vyhodnocovanie funkcie takúto návratovú hodnotu ignoruje
- ak si uvedomíme, že meno funkcie bez okrúhlych zátvoriek nespôsobí volanie tejto funkcie, ale len hodnotu referencie na funkciu, tak aj takýto zápis sa ignoruje
Napríklad všetky tieto zápisy sa v tele funkcie (alebo aj v programovom režime mimo funkcie) ignorujú:
print
pocet + 1
i == i + 1
math.sin(uhol)
Python pri nich nehlási ani žiadnu chybu.