Как преобразовать define-type в racket в python

#python #racket #type-definition

Вопрос:

В Рэкете,

 #lang plai (define-type human  [European (age number?)  (gender string?)]  [American (age number?)  (gender string?)]  [Asian (age number?)  (gender string?)])  (define h1 (American 35 "male")) (American? h1) (American-age h1) (human? h1)  

Результат:

 #t 35 #t  

но я хочу реализовать это определение типа в python. Я не знаю, как заранее определить тип.

Например, в Python

 a = "35, male, American" def test(p):  ~~~  ~~~  return x # x is only human type  print(test(a))  

результат, которого я хочу:

 American 35 "male"  

как я могу преобразовать только человеческий тип?

класс?

Комментарии:

1. Я думаю, что ваша цель, скорее всего, будет реализована в виде классов/объектов в Python