У меня есть модель класса, разработанная для человека в классе Python. где человек является студентом и может иметь 0,1 или более советников. У человека также могут быть другие атрибуты, такие как имя, школа, год выпуска, классификация, в которой он работал, степень, которую он получил и т. д.
Я установил и получил методы для каждого из этих атрибутов в классе.
Ex. set_advisor (self, advisor) добавляет консультанта в список консультантов студента.
set_year (self, year) устанавливает год окончания студента.
аналогично get_advisor (self) возвращает советника студента. и так далее ..
наконец я заполняю объекты и называю их людьми.
если я хочу получить список студентов, окончивших школу через год, я просто пишу
print [people[p].name for p in people if people[p].year="YEAR"]
Теперь я хочу написать запрос, скажем ... перечислить студентов, которые закончили в каком-то году и чей советник проследил, чтобы сказать "abc" ...
например, набор данных выглядит следующим образом ..
person a graduated in year 1990
person b graduated in year 1990
person c graduated in year 1991
person d graduated in year 1990
person a was advised by person e
person e was advised by person f
person f was advised by person g
person g was advised by person abc
person b was advised by person i
person i was advised by person abc
person c was advised by person abc
person d was advised by person h
person h was advised by person k
Теперь я хочу написать рекурсивный запрос, чтобы отслеживать только тех, кто закончил учебу в 1990 году и чей советник проследил до abc., в приведенном выше случае он должен дать мне только a и b в результате.
Как мне поступить об этом. У меня проблемы с синтаксисом и формулировкой запроса. Как и в тех же терминах, что и сформулированный выше запрос.
Кто-нибудь может помочь в этом.
аналогично .. как мне написать запрос для ... скажем ..
чтобы получить пары студентов, которые работали по некоторой классификации и окончили ее в том же году, а их консультанты также работали по той же классификации.
Спасибо.