【发布时间】:2010-11-06 11:13:11
【问题描述】:
视图是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__ 以创建一个新视图,该视图记住自己是两个子视图的组合,并在计算时将& 应用于它们。但是逻辑运算符好像挺多的,所以我不确定自己做的对不对。
是否有一个标准库类可以帮助我解决这个问题?如何简化流程?
【问题讨论】:
-
“我的第一个想法是重载逻辑运算符,因此我更改了 View.__and__ 以创建一个新视图,该视图记住自己是两个子视图的组合,并在计算时将 & 应用于它们。”这似乎是正确的。不知道有没有什么库可以缓解重复。
标签: python arrays python-3.x set