Перед PEP 435 Python не имел эквивалента, но Вы могли реализовать свое собственное.
Самостоятельно, мне нравится сохранять его простым (я видел некоторые ужасно сложные примеры в сети), что-то вроде этого...
class Animal:
DOG = 1
CAT = 2
x = Animal.DOG
В Python 3.4 ( PEP 435), можно сделать Перечисление базовый класс. Это получает Вас определенная дополнительная функциональность, описанная в PEP. Например, перечислимые участники отличны от целых чисел, и они состоят из name
и value
.
class Animal(Enum):
DOG = 1
CAT = 2
print(Animal.DOG)
#
print(Animal.DOG.value)
# 1
print(Animal.DOG.name)
# "DOG"
, Если Вы не хотите вводить значения, используйте следующий ярлык:
class Animal(Enum):
DOG, CAT = range(2)
Enum
реализации могут быть преобразованы в списки и повторяемы . Порядок его участников является порядком объявления и не имеет никакого отношения к их значениям. Например:
class Animal(Enum):
DOG = 1
CAT = 2
COW = 0
list(Animal)
# [, , ]
[animal.value for animal in Animal]
# [1, 2, 0]
Animal.CAT in Animal
# True
Да, только в памяти
Из MSDN Полная статья
Реализация ASP
Собственный сеанс ASP может хранить только данные сеанса в памяти. Для хранения данных сеанса в SQL Server, пользовательский COM-объект Microsoft® Visual Basic® 6.0 написан для управления состоянием сеанса вместо использования собственного объекта сеанса. Этот COM-объект будет создаваться в начале каждого веб-запроса и перезагружать данные сеанса с SQL Server. Когда сценарий ASP завершен, этот объект будет завершен, а состояние сеанса будет сохранено обратно на SQL Server.
Основная цель объекта COM-сеанса Visual Basic 6 - предоставить доступ к внутреннему серверу Microsoft® Internet Information Server. объекты. Visual Basic 6. 0 Объект сеанса COM использует класс mySession сборки SessionUtility для хранения состояния сеанса и класс SessionPersistence SessionUtility для загрузки и сохранения данных сеанса с помощью SQL Server. Классы mySession и SessionPersistence предоставляются как объекты COM с помощью утилиты regasm.exe. Утилита regasm.exe может зарегистрировать и создать библиотеку типов для COM-клиента, чтобы использовать классы Framework.
Информация о состоянии сеанса перезагружается во время создания объекта. Конструктор (class_initialize) сначала получит файл cookie сеанса, тайм-аут сеанса (SessionTimeOut) и строку подключения к базе данных (SessionDSN) из объекта Application и создаст экземпляр класса mySession для хранения данных сеанса. Затем конструктор попытается перезагрузить данные сеанса из SQL Server с заданным файлом cookie. Если SQL Server не имеет информации о сеансе или срок действия сеанса истек, будет выпущен новый файл cookie. Если SQL-сервер действительно вернет данные о состоянии сеанса, состояние сеанса будет сохранено в объекте mySession.
There's nothing else built in, though in ASP Classic it's pretty easy to build your own session management system. Simplest form being a table in a db like the following:
SessionID int PK, Fields text, Values text, Expires DateTime
Come up with some kind of CSV encoder/decoder for the fields and values and populate a collection on every page. Then save it once the page executes and update the expiration time. Then just have a cookie keep track of the session ID or pass it around in the querystring.