Форум сайта python.su
0
Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?
Офлайн
221
megoloman
списки, строки и словари это наиболее часто с чем приходиться работать. Есть и остальные, все они перечисленные в официальной документации и в книгах, коими нас не обделили.
Офлайн
20
megolomanВ Python нет встроенных перечисляемых типов, таких как enum в современном С/С++, C# и Java. При желании что-то близкое к enum можно легко создать средствами Python. Например, создать кортеж из именованных констант. Но специально иметь такой встроенный тип просто нет необходимости в динамическом языке со слабой типизацией, каким является Python.
Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?
Офлайн
568
old_monty
вы таки отстали от жизни
https://docs.python.org/3/library/enum.html
Офлайн
20
FishHook
О! Спасибо. А то я так бы и продолжал оставаться в блаженном неведении. 
UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.
Отредактировано old_monty (Фев. 19, 2016 17:46:46)
Офлайн
88
old_montyhttps://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language
в динамическом языке со слабой типизацией, каким является Python.
Офлайн
49
old_monty
UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.
Офлайн
568
Чтобы впилить енумы во встроенные типы понадобилось бы расширение синтаксиса, которое поломало бы обратную совместимость да и вообще, нахрена, если желаемого можно достигнуть используя имеющийся функционал?
Офлайн
20
4kpt_IVТак ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.
Значит он просто не нужен. Или не так часто нужен как остальные встроенные типы.
Офлайн
568
old_montyЕсли рассуждать критериями необходимости, то аннотации типов вводить не было никакой необходимости или внедрять специальный синтаксис для асинхронных операций (работало же раньше без него). Тут вопрос рациональности: зачем изменять структуру языка (это дорого, долго и багоопасно), если вполне можно обойтись библиотечным кодом.
Так ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.
Офлайн