Я стараюсь придерживаться правил кодирования PEP8. У меня есть пакет под названием main
. Внутри пакета есть модуль под названием time
, который имеет класс под названием Time
внутри. Теперь у меня есть немного проблем с поиском подходящего имени для моего фактического экземпляра, потому что time
, который обычно был моим выбором, уже был взят модулем, и, похоже, это столкновение имен, если я назову его таким образом.Как назвать переменные экземпляра в Python?
from main.time import Time
time = Time()
...
if time.status == main.time.STOPPED
Возможно также разместил константу в неправильном модуле, но я подумал, что было бы лучше, чтобы мои постоянные в том месте, где они принадлежат. Это константа, используемая в моем классе Time
(и модуле main
), поэтому я могу убедиться, что я не смешиваю ее с другой константой, называемой STOPPED
, используемой для перемещения игрока. К сожалению, я получаю AttributeError: 'function' object has no attribute 'time'
.
Какое будет лучшее решение? Переименуйте константы в TIME_STOPPED
и PLAYER_STOPPED
и поместите их в модуль констант? Именование моей переменной экземпляра my_time
или time_
или что-то вроде этого не совсем то, что я хотел бы сделать. Что такое питоновский путь?
не понимающий. пожалуйста, укажите полный код и трассировку – Pynchia
Ваша проблема в том, что у вас нет доступа к 'STOPPED', конечно? Я думаю, что вы хотите 'from main.time import Time, STOPPED'. Вы также можете сделать это атрибутом класса «Время», поэтому тест станет «if time.status == Time.STOPPED:', что еще больше уменьшит двусмысленность с версией игрока «STOPPED». – jonrsharpe
Попробуйте добавить такой импорт: 'import main.time' –