Просмотр - это полезные конструкции Python 3 . Для тех, кто никогда не замечал (как я): для словаря d
вы можете написать k = d.keys()
, и даже если вы обновите d
, переменная k
все равно будет выдавать вам обновленные ключи. Тогда вы можете написать k1 & k2
, и он всегда даст вам d1.keys() & d2.keys()
Я хочу реализовать это для моего персонального менеджера задач, но я хотел бы сделать сложные представления динамическими или с ленивой оценкой . То есть у меня есть некоторые представления, называемые so
, post
и priority
, и я хочу иметь возможность написать:
now = so | phone & priority
, чтобы позже, когда вызывается __repr__(now)
, оценка выполняется только в этой точке .
Моей первой мыслью было перегрузить логические операторы, поэтому я изменил View.__and__
, чтобы создать новое представление, которое помнит себя как составную часть двух подпредставлений и применяет &
к ним при вычислении. Но, похоже, логических операторов довольно много, поэтому я не уверен, правильно ли я поступаю.
Есть ли стандартный библиотечный класс, который бы помог мне с этим? Как я могу упростить процесс?