![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 7 Всего: 49 |
Как можно в Питоне задать группу именованных констант?
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
grock |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 3.8.2005 Где: Санкт - Петербург Репутация: 1 Всего: 1 |
не знаю, не помню я enum, но группу именованных констант можно создать исплользуя либо словари, либо создавая два кортежа, в которых будет взаимное соответсвие, т.е. имени идентификатора в одном кортеже будет соответствовать константа в другом, не очень красиво конечно, зато содержимое кортежа изменить нельзя, можно только дополнить
|
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 7 Всего: 49 |
Я имел в виду следующее (пример абстрактный):
Здесь значения самих констант не интересны, просто вводится группа идентификаторов, позволяющая различать некоторое понятие. Я так понимаю, в Питоне для этого можно использовать строки? -------------------- Не смей читать мою подпись!!! |
|||
|
||||
diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 3 Всего: 16 |
srd, я не понимаю, зачем тебе это нужно. Аналога enum в Python нет (в этом нет необходимости). Если хочешь, можешь использовать
|
|||
|
||||
srd |
|
||||||||||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 7 Всего: 49 |
Ну, вот менее абстрактный пример
![]()
Как аналогичные задачи решаются на Питоне? Так писать неудобно, т.к. совершенно не понятно что есть 0, 1 или 2:
Так писать тоже не удобно:
Ибо здесь имена Empty, Frigate - это переменные, а не константы. Т.е. переменнную можно случайно изменить и не обнаружить это, во вторых - сами переменные, как объекты в памяти, явно здесь лишние. Может просто обойтись строками?
А может быть мне это и не нужно, просто я об этом не знаю ![]() ![]() -------------------- Не смей читать мою подпись!!! |
||||||||||
|
|||||||||||
setq |
|
||||
Unregistered |
я не слышал способ создать в Питоне константное имя (которому нельзя присвоить новый объект).
что же касается записи, то недавно решил подобную задачу так:
теперь:
я использовал exec потому что в __моём__ случае это было удобнее чем словарь. в общем... не знаю, то ли это что ты хотел. |
||||
|
|||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 7 Всего: 49 |
Гм, интересный способ, надо разобраться
![]()
Т.е. использование обычных объектов в таком качестве - это в Питоне common practice? Тогда так и буду делать. Всем ответившим - спасибо. -------------------- Не смей читать мою подпись!!! |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 10 Всего: 173 |
srd
Немного более удобная запись, но проблемы константности она не решает.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
diam |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 348 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 3 Всего: 16 |
+1 ![]() И не бойся, что случайно присвоишь переменной другое значение ![]() |
|||
|
||||
J2A |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 17.11.2005 Где: Омск Репутация: 16 Всего: 18 |
Как раз про enum: http://groups.google.com/group/comp.lang.p...9d1d77d605bdba/
В сухом остатке от дискуссии в comp.lang.python: использовать http://aspn.activestate.com/ASPN/Cookbook/...n/Recipe/413486 --------------------
Be easy, stay cool |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |