Python "private" соглашение о кодировании функций

При написании модуля и функций python у меня есть некоторые "общедоступные" функции, которые должны быть подвержены посторонним, но некоторые другие функции "private", которые должны только отображаться и использоваться локально и внутренне.

Я понимаю, что в python нет абсолютных частных функций. Но какой лучший, самый опрятный или наиболее используемый стиль выделяет "общедоступные" функции и функции "private"?

Я перечисляю некоторые из стилей, которые я знаю:

Есть ли какая-нибудь другая идея или соглашение, которые люди используют?

Большое спасибо!

+40
23 февр. '13 в 23:54
источник поделиться
1 ответ

Из документа Python Class:

Частные переменные экземпляра, к которым невозможно получить доступ, кроме как изнутри объекта, не существует в Python. Однако существует соглашение, за которым следует большинство кода Python: имя с префиксом подчеркивания (например, _spam) должно рассматриваться как непубличная часть API (будь то функция, метод или элемент данных). Она должна рассматриваться как деталь реализации и может быть изменена без уведомления.

Так как существует допустимый прецедент для членов класса и частного лица (а именно, чтобы избежать столкновения имен имен с именами, определенными подклассами), существует ограниченная поддержка такого механизма, называемого mangling. Любой идентификатор формы __spam (по крайней мере два ведущих символа подчеркивания, не более одного нижнего подчеркивания) заменяется текстовым символом _classname__spam, где classname - это текущее имя класса с разделительными подчеркиваниями. Это манипулирование выполняется независимо от синтаксического положения идентификатора, если оно встречается в определении класса.

+65
25 февр. '13 в 17:03
источник

Посмотрите другие вопросы по меткам или Задайте вопрос