Используя ту же парадигму, что и в RDF, я моделирую класс и его нелитеральные атрибуты, что и идентификатор для ссылочного объекта, например, URI в RDF.GUID = NewType("GUID", int) # create a subclass of int
print(GUID.__name__) # prints 'GUID'
class Person:
id: GUID
parents: list["PersonId"]
Когда дело доходит до определения Personid , у меня есть этот кусок кода:
def field_info(class_model: type, attr_name: str) -> tuple[type, str, Any]:
attributes = inspect.get_annotations(class_model)
assert attr_name in attributes
return (class_model, attr_name, attributes[attr_name])
PersonId = TypeAliasType("PersonId", Annotated[GUID, field_info(Person, "id")]) # create an alias of GUID.
и в коде, вблизи сериализации/десериализации в DB, у меня есть чеки, подобные тем, чтобы убедиться, что тип аннотации соответствует типу атрибута.
(я взял пример для упрощения.assert Person.__name__ == "Person" # true
assert isinstance(PersonId, typing.TypeAliasType) # true
origin = get_origin(PersonId.__value__)
args = get_args(PersonId.__value__)
assert origin is Annotated # true
assert args[0] is GUID # true
assert args[1] == (Person, "id", GUID) # true
assert args[0] == args[1][2] # true
< /code>
Есть ли способ напрямую определить < /p>
PersonId = TypeAliasType("PersonId", Person.id) #AttributeError: type object 'Person' has no attribute 'id'
Подробнее здесь: https://stackoverflow.com/questions/797 ... annotation
Есть ли элегантный способ использовать атрибут класса в качестве аннотации типа? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли элегантный способ использовать атрибут класса в качестве аннотации типа?
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Есть ли элегантный способ использовать атрибут класса в качестве аннотации типа?
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Атрибут класса Python: как неявно ссылаться на атрибут родительского класса? [дублировать]
Anonymous » » в форуме Python - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Элегантный способ в Python убедиться, что строка подходит в качестве имени файла?
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-