Хотя не существует явных частных ключевых слов, существует соглашение, согласно которому частные функции должны начинаться с одного подчеркивания, но двойное начальное подчеркивание сделает это таким образом, чтобы другие не могли легко вызвать функцию извне модуля. См. Следующее из PEP 8
- _single_leading_underscore: weak "internal use" indicator. E.g. "from M
import *" does not import objects whose name starts with an underscore.
- single_trailing_underscore_: used by convention to avoid conflicts with
Python keyword, e.g.
Tkinter.Toplevel(master, class_='ClassName')
- __double_leading_underscore: when naming a class attribute, invokes name
mangling (inside class FooBar, __boo becomes _FooBar__boo; see below).
- __double_leading_and_trailing_underscore__: "magic" objects or
attributes that live in user-controlled namespaces. E.g. __init__,
__import__ or __file__. Never invent such names; only use them
as documented.
Чтобы сделать весь модуль приватным, не включайте его __init__.py
файл.