Я использую Python + PyAMF для общения с клиентами Flex, но у меня возникла проблема с псевдо-Enum-Singletons, которые я использую:
class Type {
public static const EMPTY:Type = new Type("empty");
public static const FULL:Type = new Type("full");
...
}
Когда я использую локально созданные экземпляры, все выглядит превосходно:
if (someInstance.type == Type.EMPTY) { /* do things */ }
Но, если 'someInstance' пришло из кода Python, его экземпляр 'type', очевидно, не будет Type.EMPTY
или Type.FULL
.
Итак, как лучше всего заставить мой код работать?
Есть ли способ управления десериализацией AMF, поэтому при загрузке удаленного Type
будет вызвано правильное преобразование? Или я должен просто прикусить пулю и сравнить Types
, используя что-то отличное от ==
? Или я могу каким-то образом обмануть сплоченность типа ==
, делая то, что я хочу?
Редактировать : С другой стороны, предоставляет ли пакет удаленного взаимодействия Flex какие-либо перехваты, запускаемые после десериализации экземпляра, поэтому я мог бы выполнить преобразование тогда?