Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2016 19:43:19

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?

Офлайн

#2 Фев. 18, 2016 22:50:02

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

megoloman
списки, строки и словари это наиболее часто с чем приходиться работать. Есть и остальные, все они перечисленные в официальной документации и в книгах, коими нас не обделили.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Фев. 19, 2016 17:04:34

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

megoloman
Здравствуйте! Подскажите пожалуйста, какие в Python есть основные перечисляемые типы?
В Python нет встроенных перечисляемых типов, таких как enum в современном С/С++, C# и Java. При желании что-то близкое к enum можно легко создать средствами Python. Например, создать кортеж из именованных констант. Но специально иметь такой встроенный тип просто нет необходимости в динамическом языке со слабой типизацией, каким является Python.

Офлайн

#4 Фев. 19, 2016 17:10:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

old_monty
вы таки отстали от жизни
https://docs.python.org/3/library/enum.html



Офлайн

#5 Фев. 19, 2016 17:34:22

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

FishHook
О! Спасибо. А то я так бы и продолжал оставаться в блаженном неведении.

UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.

Отредактировано old_monty (Фев. 19, 2016 17:46:46)

Офлайн

#6 Фев. 19, 2016 17:38:28

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

old_monty
в динамическом языке со слабой типизацией, каким является Python.
https://wiki.python.org/moin/Why%20is%20Python%20a%20dynamic%20language%20and%20also%20a%20strongly%20typed%20language

Офлайн

#7 Фев. 19, 2016 17:56:19

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

old_monty
UPD: Однако мое первое утверждение все же не является ошибочным. Поддержка для enum появилась в версии 3.4, но встроенного (как int, str или bool) типа enum в языке Python нет.

Значит он просто не нужен. Или не так часто нужен как остальные встроенные типы.

Офлайн

#8 Фев. 19, 2016 18:01:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

Чтобы впилить енумы во встроенные типы понадобилось бы расширение синтаксиса, которое поломало бы обратную совместимость да и вообще, нахрена, если желаемого можно достигнуть используя имеющийся функционал?



Офлайн

#9 Фев. 19, 2016 18:02:44

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

4kpt_IV
Значит он просто не нужен. Или не так часто нужен как остальные встроенные типы.
Так ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.

Офлайн

#10 Фев. 19, 2016 18:16:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перечисляемые типы в Python

old_monty
Так ведь я выше сказал то же самое, разве нет? “Специально иметь такой встроенный тип просто нет необходимости”.
Если рассуждать критериями необходимости, то аннотации типов вводить не было никакой необходимости или внедрять специальный синтаксис для асинхронных операций (работало же раньше без него). Тут вопрос рациональности: зачем изменять структуру языка (это дорого, долго и багоопасно), если вполне можно обойтись библиотечным кодом.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version