Найти - Пользователи
Полная версия: Перечисляемые типы в Python
Начало » Python для новичков » Перечисляемые типы в Python
1 2
megoloman
Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?
JOHN_16
megoloman
списки, строки и словари это наиболее часто с чем приходиться работать. Есть и остальные, все они перечисленные в официальной документации и в книгах, коими нас не обделили.
old_monty
megoloman
Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?
В Python нет встроенных перечисляемых типов, таких как enum в современном С/С++, C# и Java. При желании что-то близкое к enum можно легко создать средствами Python. Например, создать кортеж из именованных констант. Но специально иметь такой встроенный тип просто нет необходимости в динамическом языке со слабой типизацией, каким является Python.
FishHook
old_monty
вы таки отстали от жизни
https://docs.python.org/3/library/enum.html
old_monty
FishHook
О! Спасибо. А то я так бы и продолжал оставаться в блаженном неведении.

UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.
Shaman
old_monty
в динамическом языке со слабой типизацией, каким является Python.
https://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language
4kpt_IV
old_monty
UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.

Значит он просто не нужен. Или не так часто нужен как остальные встроенные типы.
FishHook
Чтобы впилить енумы во встроенные типы понадобилось бы расширение синтаксиса, которое поломало бы обратную совместимость да и вообще, нахрена, если желаемого можно достигнуть используя имеющийся функционал?
old_monty
4kpt_IV
Значит он просто не нужен. Или не так часто нужен как остальные встроенные типы.
Так ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.
FishHook
old_monty
Так ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.
Если рассуждать критериями необходимости, то аннотации типов вводить не было никакой необходимости или внедрять специальный синтаксис для асинхронных операций (работало же раньше без него). Тут вопрос рациональности: зачем изменять структуру языка (это дорого, долго и багоопасно), если вполне можно обойтись библиотечным кодом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB