谁能给我解释一下"懒惰"的含义吗.

例如

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)

Python相关问答推荐

剧作家Python没有得到回应

对Numpy函数进行载体化

根据条件将新值添加到下面的行或下面新创建的行中

点到面的Y距离

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

Pandas 都是(),但有一个门槛

pandas滚动和窗口中有效观察的最大数量

如何让Flask 中的请求标签发挥作用

如何在Python中并行化以下搜索?

OR—Tools CP SAT条件约束

avxspan与pandas period_range

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

合并帧,但不按合并键排序

如何使用OpenGL使球体遵循Python中的八样路径?

在Python中控制列表中的数据步长

如何在Airflow执行日期中保留日期并将时间转换为00:00

高效生成累积式三角矩阵

极柱内丢失类型信息""

Pandas:计数器的滚动和,复位

如何在Python中创建仅包含完整天数的月份的列表