当前位置:首页>python>Python迭代器与生成器 (学习笔记6)

Python迭代器与生成器 (学习笔记6)

  • 2026-06-18 15:20:55
Python迭代器与生成器 (学习笔记6)

Python 迭代器与生成器

一句话理解: 迭代器像是一个"取号机"——你每次叫号,它就给你下一个号,直到号用完为止;生成器是一种"懒惰的工厂"——你要一个它才生产一个,不会提前把所有产品都造出来。



    什么是迭代?

    迭代就是"一个接一个地取值",比如:

    for x in [123]:   # 每次循环取出一个元素    print(x)

    能被 for 循环遍历的对象叫做可迭代对象(Iterable),常见的有:列表、元组、字符串、字典、集合等。

    可迭代对象 vs 迭代器

    • 可迭代对象:可以用 iter() 函数"激活"它,变成迭代器
    • 迭代器:在可迭代对象基础上,额外支持 next() 一个一个取值
    可迭代对象  ──iter()──>  迭代器  ──next()──>  逐个取值[1,2,3]                  <it>               1 → 2 → 3 → StopIteration

    迭代器

    iter() 与 next()

    iter() 把一个可迭代对象转换成迭代器;next() 从迭代器中取下一个值。

    nums = [1234]it = iter(nums)       # 创建迭代器,相当于"拿到取号机"print(next(it))       # 输出: 1  (取第1个号)print(next(it))       # 输出: 2  (取第2个号)print(next(it))       # 输出: 3print(next(it))       # 输出: 4# print(next(it))     # 如果继续取,会抛出 StopIteration,表示没有更多了

    关键点: 迭代器只能往前走,不能回头。就像排队叫号,叫过的号不会再叫。


    for 循环遍历

    for 循环本质上就是在自动调用 iter() + 反复调用 next(),直到捕获 StopIteration 为止:

    nums = [1234]it = iter(nums)for x in it:    print(x, end=" ")# 输出: 1 2 3 4

    上面的 for 循环等价于下面的手动版本:

    # for 循环的内部原理(伪代码)it = iter(nums)whileTrue:try:        x = next(it)        print(x, end=" ")except StopIteration:break# 没有更多元素了,停止循环

    用 while + next() 手动遍历

    有时候 for 循环不够灵活,可以手动控制:

    import sysnums = [1234]it = iter(nums)whileTrue:try:        print(next(it))   # 每次手动取一个except StopIteration:        sys.exit()        # 取完了就退出

    输出:

    1234

    自己写一个迭代器类

    要让自己的类变成迭代器,需要实现两个魔术方法:

    方法
    作用
    __iter__(self)
    返回迭代器自身(通常 return self
    __next__(self)
    返回下一个值;没有更多值时抛出 StopIteration
    classMyCounter:"""一个从1开始、无限计数的迭代器"""def__iter__(self):        self.current = 1# 初始化计数器return self           # 返回自身作为迭代器def__next__(self):        value = self.current  # 记录当前值        self.current += 1# 指针前进return value          # 返回当前值counter = MyCounter()it = iter(counter)print(next(it))   # 1print(next(it))   # 2print(next(it))   # 3print(next(it))   # 4print(next(it))   # 5

    注意: 上面这个迭代器会无限计数,不会自动停止。下面介绍如何加停止条件。


    StopIteration:何时停下来

    StopIteration 是 Python 用来通知"迭代结束"的信号。在 __next__ 里,当达到终止条件时手动 raise 它:

    classCountTo:"""从1数到 max_val 后停止"""def__iter__(self):        self.current = 1return selfdef__next__(self):if self.current <= self.max_val:   # 还没数完            value = self.current            self.current += 1return valueelse:raise StopIteration            # 数完了,发出结束信号def__init__(self, max_val):        self.max_val = max_val# 数到5就停for x in CountTo(5):    print(x, end=" ")# 输出: 1 2 3 4 5

    执行流程如下:

    调用 next()    ↓current <= max_val?    ├── 是 → 返回 current,current += 1    └── 否 → raise StopIteration → for 循环感知到,自动退出

    生成器

    yield 关键字

    生成器是用 yield 语句定义的特殊函数。它比手写迭代器类要简洁得多。

    普通函数 vs 生成器函数的区别:

    # 普通函数:一次性返回所有结果(占用大量内存)defget_numbers(n):    result = []for i in range(n):        result.append(i)return result            # 一口气全返回# 生成器函数:每次只产生一个值(按需生成,省内存)defgen_numbers(n):for i in range(n):yield i              # 每次暂停在这里,返回一个值

    yield 的执行逻辑:

    1. 调用生成器函数 → 返回一个生成器对象(并不立即执行函数体
    2. 每次调用 next() → 函数从上次 yield 的地方继续执行
    3. 遇到 yield → 暂停执行,把 yield 后面的值返回给调用者
    4. 函数执行完毕 → 自动抛出 StopIteration
    defcountdown(n):    print(f"开始从 {n} 倒数")while n > 0:yield n           # ← 每次在这里暂停,把 n 返回出去        n -= 1# ← 下次调用 next() 时从这里继续    print("倒数结束!")gen = countdown(5)        # 创建生成器对象(函数体还没运行)print(next(gen))          # 输出: 开始从5倒数 \n 5print(next(gen))          # 输出: 4print(next(gen))          # 输出: 3for val in gen:           # 继续从4开始遍历剩余的值    print(val)            # 输出: 2  1  倒数结束!

    输出:

    开始从 5 倒数54321倒数结束!

    生成器执行流程图

    下面是 yield 如何让函数"走走停停"的示意图:

    调用 countdown(5)      │      ▼  返回生成器对象 gen(函数体未执行)      │      ▼  next(gen) ──→ 函数开始执行 ──→ 遇到 yield 5 ──→ 暂停,返回 5                                                        │  next(gen) ←───────────────── 从 yield 处继续 ←────────┘      │      ▼  执行 n -= 1 → n=4 → 遇到 yield 4 → 暂停,返回 4      │     ...(重复以上步骤)...      │      ▼  n=0,while 条件不满足 → 函数执行完毕 → 自动抛出 StopIteration

    实战:斐波那契数列

    用生成器实现斐波那契数列,非常优雅:

    deffibonacci(n):"""生成斐波那契数列的前 n+1 项"""    a, b = 01# a 是当前值,b 是下一个值    count = 0while count <= n:yield a               # 产出当前的斐波那契数        a, b = b, a + b       # 更新:a 移到 b,b 变成 a+b        count += 1# 打印前11项(索引0~10)for num in fibonacci(10):    print(num, end=" ")

    输出:

    0 1 1 2 3 5 8 13 21 34 55

    斐波那契数列生成过程(前5步):

    步骤
    当前输出(a)
    下一轮 a
    下一轮 b
    1
    0
    1
    1
    2
    1
    1
    2
    3
    1
    2
    3
    4
    2
    3
    5
    5
    3
    5
    8

    迭代器 vs 生成器:对比总结

    特性
    迭代器(Iterator Class)
    生成器(Generator)
    定义方式
    定义类,实现 __iter__ 和 __next__
    使用 yield 的普通函数
    代码量
    较多,需要手动管理状态
    极少,状态自动保存
    可读性
    中等
    高,逻辑清晰
    内存占用
    视实现而定
    按需生成,极省内存
    适合场景
    复杂的迭代逻辑、面向对象设计
    大数据流、无限序列、流式处理
    本质关系
    生成器是迭代器的一种
    生成器自动实现了迭代器协议

    一句话总结: 生成器是写迭代器的"快捷方式",代码更短,内存更省,优先选择。


    什么时候用生成器?

    场景1:处理超大数据,避免内存溢出

    # ❌ 普通列表:会把100万个数全部载入内存big_list = [x * 2for x in range(1_000_000)]# ✅ 生成器:每次只生成一个,内存占用几乎为零defdouble_gen(n):for x in range(n):yield x * 2for val in double_gen(1_000_000):    process(val)   # 边生成边处理

    场景2:无限序列

    defnatural_numbers():"""无限自然数序列"""    n = 0whileTrue:       # 永不停止yield n        n += 1gen = natural_numbers()print(next(gen))   # 0print(next(gen))   # 1print(next(gen))   # 2# 按需取,永远不会"造完"

    场景3:生成器表达式(列表推导式的懒惰版)

    # 列表推导式:立即生成所有结果squares_list = [x**2for x in range(10)]# 生成器表达式:只在用到时才计算(把 [] 换成 ())squares_gen = (x**2for x in range(10))print(list(squares_gen))   # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    总结一下学习路径:

    1. 理解"可迭代对象"→ 能用 for 遍历的东西
    2. 理解"迭代器"→ 有 __iter__ 和 __next__ 的对象
    3. 理解"yield"→ 让函数能暂停和继续
    4. 掌握生成器 → 更优雅地写迭代器
    5. 实战应用 → 大文件读取、流式处理、无限序列

    最新文章

    随机文章

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-07-03 12:20:35 HTTP/2.0 GET : https://f.mffb.com.cn/a/498068.html
    2. 运行时间 : 0.434129s [ 吞吐率:2.30req/s ] 内存消耗:4,640.87kb 文件加载:140
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=0c0d713359b5f5eaf2a0af2e4813236e
    1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
    2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
    3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
    4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
    5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
    6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
    7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
    8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
    9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
    10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
    11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
    12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
    13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
    14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
    15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
    16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
    17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
    18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
    19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
    20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
    21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
    22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
    23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
    24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
    25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
    26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
    27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
    28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
    29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
    30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
    31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
    32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
    33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
    34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
    35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
    36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
    37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
    38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
    39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
    40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
    41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
    42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
    43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
    44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
    45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
    46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
    47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
    48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
    49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
    50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
    51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
    52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
    53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
    54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
    55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
    56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
    57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
    58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
    59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
    60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
    61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
    62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
    63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
    64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
    65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
    66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
    67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
    68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
    69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
    70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
    71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
    72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
    73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
    74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
    75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
    76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
    77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
    78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
    79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
    80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
    81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
    82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
    83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
    84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
    85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
    86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
    87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
    88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
    89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
    90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
    91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
    92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
    93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
    94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
    95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
    96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
    97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
    98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
    99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
    100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
    101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
    102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
    103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
    104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
    105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
    106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
    107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
    108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
    109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
    110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
    111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
    112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
    113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
    114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
    115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
    116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
    117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
    118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
    119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
    120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
    121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
    122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
    123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
    124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
    125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
    126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
    127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
    128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
    129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
    130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
    131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
    132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
    133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
    134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
    135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
    136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
    137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
    138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
    139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
    140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
    1. CONNECT:[ UseTime:0.000467s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000551s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.007617s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.012879s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000960s ]
    6. SELECT * FROM `set` [ RunTime:0.007292s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000589s ]
    8. SELECT * FROM `article` WHERE `id` = 498068 LIMIT 1 [ RunTime:0.000522s ]
    9. UPDATE `article` SET `lasttime` = 1783052436 WHERE `id` = 498068 [ RunTime:0.011753s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.012913s ]
    11. SELECT * FROM `article` WHERE `id` < 498068 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.006813s ]
    12. SELECT * FROM `article` WHERE `id` > 498068 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.012647s ]
    13. SELECT * FROM `article` WHERE `id` < 498068 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.049750s ]
    14. SELECT * FROM `article` WHERE `id` < 498068 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.150082s ]
    15. SELECT * FROM `article` WHERE `id` < 498068 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.064015s ]
    0.436995s