Скажем, у вас есть открытый метод в Python, основной целью которого является получение значения базового атрибута данных (то есть внутреннего резервного хранилища). Метод может иметь ленивую логику оценки и т. Д. Свойство является примером такого метода.
Тогда естественно использовать одно и то же имя для метода и атрибута данных, за исключением префикса подчеркивания для атрибута данных. Например -
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
"""I'm the 'x' property."""
return self._x
(из документации "свойства" Python )
Но каковы некоторые предпочтительные соглашения, если метод предназначен для внутреннего использования и поэтому сам по себе префикс подчеркивания? Добавление префикса к резервному хранилищу с двумя ведущими символами подчеркивания приведет к искажению имени и поэтому не является идеальным.
Две возможности могут быть -
def _get_x(self):
return self._x
def _x(self):
return self._x_
Стиль Python говорит, что второе (добавление подчеркивания), тем не менее, должно использоваться только во избежание конфликтов с зарезервированными ключевыми словами.