Подтвердить что ты не робот

Пространства в словарных словах Python

Я знаю, что у вас могут быть пробелы в словарных словах Python, но это плохое программирование? Я не мог найти ничего в PEP об этом.

Изменить для пояснения: В проекте, который я делаю, я работаю над чем-то, что анализирует вывод табло с Apache mod_status (см. Пример ниже). Я просто пытаюсь найти наилучшую практику. Должен ли я в итоге:

workers = {'W': 1,
           '_': 9,
           ...}

или это:

workers = {'Sending Reply': 1,
           'Waiting for Connection': 9,
           ...}

Пример mod_status вывод:

_....___W____._.................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
4b9b3361

Ответ 1

Вы можете использовать такие инструменты, как pylint, чтобы проверить, совместим ли ваш код с PEP8 или нет:

поэтому я попробовал что-то вроде:

M_D1 = {" foo bar ":1, " a bc":2, " ":3}

и pylint дали мне 10/10 рейтинга, поэтому я думаю, что у него нет проблем с пробелами, используемыми в клавишах.

Ответ 2

Возможно, вы думаете о Javascript, где вы можете ссылаться на объект через его ключи с помощью obj.foo и obj['foo']. В этом случае пробелы можно считать плохими, потому что первая версия не будет работать: у Python эта опция отсутствует, поэтому вопрос не возникает.

Ответ 3

Если ваши ключи являются строками, они могут содержать что угодно.

Что они должны представлять? Приведите пример.

Ответ 4

Вашими ключами могут быть любые (строки), которые вы хотите. Если вы используете их для чего-то внутреннего - пространство может быть не лучшей идеей. В противном случае - ok.