谁能给我解释一下"懒惰"的含义吗.
例如
These functions store a lazy reference to the string
我在许多编程语言中多次遇到这个词,但我听不懂.
谁能给我解释一下"懒惰"的含义吗.
例如
These functions store a lazy reference to the string
我在许多编程语言中多次遇到这个词,但我听不懂.
这意味着在你需要结果之前,它不会被判断.
比如说
a = iter([1,2,3])
你知道你有一个1,2,3的列表,但你不会从中得到任何值,直到你需要在某些事情中使用它们.
for value in a:
print(a)
具体来说,对于django,它通常在涉及ORM进行查询时执行此操作.
你可以写
n = MyObject.objects.filter(x='foo')
但您可能希望在以后将此查询与其他附加筛选器链接在一起
if x:
n = n.filter(y="bar")
因此,为了避免在这里发生两个查询,django不会try 从数据库中获取对象,直到您开始try 对queryset执行涉及使用查询返回的对象的操作
for db_item in n:
print(db_item)