当前位置:首页>python>《Python 从入门到精通》081|模块是什么:为什么 Python 代码可以拆文件

《Python 从入门到精通》081|模块是什么:为什么 Python 代码可以拆文件

  • 2026-06-28 12:42:49
《Python 从入门到精通》081|模块是什么:为什么 Python 代码可以拆文件
今日分享:

不要盯着问题,而是盯紧目标; 不做解决问题的高手,而是做达成目标的强者!

前面我们已经一路学到了函数、文件、异常、面向对象。到这里,很多人都会慢慢碰到一个新问题:

代码一开始只有几行的时候,写在一个 .py 文件里当然没问题。 可当代码越来越多,函数越来越多,类越来越多,文件越来越长时,整份代码就会越来越难看、越来越难找、越来越难维护。

比如你可能会遇到这种情况:

上面是用户管理函数 中间是文件处理函数 下面是图书类 再往后又是一些工具函数 最后还有一大段程序入口代码

一整个文件从头滚到尾,自己看着都累。

这时候,模块就该出场了。

这一章,我们就把一个非常重要的能力讲清楚:

为什么 Python 代码可以拆成多个文件,以及模块到底是什么。

你会发现,学会模块以后,代码会第一次真正开始有“项目结构”的感觉。

一、先说结论:模块其实就是 Python 文件

先给你一个最直接、最够用的结论:

一个 .py 文件,通常就可以看作一个模块。

比如你有一个文件叫:

tools.py

那这个 tools.py,本身就可以被当成一个模块来使用。

再比如:

user.pybook.pymath_utils.pyconfig.py

它们每一个,都可以是一个模块。

所以模块这个词,初学时不要想得太玄。 你先把它理解成:

为了让代码更清楚,我们把相关代码单独放进一个 Python 文件,这个文件就叫模块。

这样理解,基本就顺了。

二、为什么代码一定会走到“要拆文件”这一步

这是一个非常现实的问题。

很多初学者前期写的程序都比较短,一个文件几十行,甚至十几行,当然不觉得拆文件有必要。 但只要你继续往后学,代码量一定会上来。

比如你做一个小项目,里面可能会有:

数据处理函数 日志函数 工具函数 配置项 多个类 主程序入口

如果这些东西全堆在一个文件里,会出现几个明显问题。

第一,不好找。 你想改个工具函数,得在一大堆代码里翻半天。

第二,不好分工。 如果以后和别人协作,所有人都改一个文件,冲突会非常多。

第三,不好复用。 有些工具函数本来别的地方也想用,但现在都和主程序糊在一起了。

第四,不好维护。 代码一长,你脑子里就很难快速建立清晰结构。

所以代码拆文件,不是什么“高级技巧”,而是代码一多之后的自然需求。

三、模块本质上是在做什么

模块最核心的作用,其实只有一句话:

把相关代码组织到一个独立文件里,方便复用和管理。

比如你可以这样想。

数学相关函数,放到一个文件里。 用户相关类,放到一个文件里。 图书相关类,放到一个文件里。 程序入口,单独放到一个文件里。

这样做的结果是什么?

谁负责什么,一下就清楚了。

所以模块本质上不是“多学一个语法”,而是在学代码组织方式。

前面我们说过:

函数更擅长组织步骤 类更擅长组织角色

那到了这一章,你可以再加一句:

模块更擅长组织文件层面的结构。

四、先看一个不用模块时的尴尬场景

假设你现在写了两个函数:

defadd(a, b):return a + bdefsub(a, b):return a - b

一开始你把它们写在主程序里,没问题。

但后来你又写了:

用户登录函数 成绩统计函数 文件读取函数 日志打印函数

整个文件越来越长。

这时如果你还不拆,后果就是:

所有逻辑混在一起 工具函数和业务逻辑混在一起 主程序入口和底层能力混在一起

这时候你会明显感觉到:

不是代码不能跑,而是结构开始变乱了。

而模块,就是在帮你把这种乱局重新整理清楚。

五、模块最直接的好处:分工明确

比如你可以把数学工具单独写进一个文件 my_math.py

defadd(a, b):return a + bdefsub(a, b):return a - b

然后主程序里只保留核心流程,不再把所有函数都堆在一起。

这样一来,my_math.py 这个文件一看就知道是干什么的。 以后谁想改数学工具,直接进这个文件。 谁想看主流程,去主程序文件。

这就是模块带来的第一层清晰感:

一个文件,专注一类事情。

这个思想特别重要。

因为后面你会发现,真正“像样的代码”通常都有这种结构意识。

六、模块不仅是为了整理,更是为了复用

这是第二个非常重要的价值。

如果一个文件里的代码写得足够独立,那它以后就不只是“这个项目的一部分”,而是可以被别的地方继续用。

比如你写了一个 string_tools.py,里面放的是字符串处理函数。 以后你做别的项目时,照样可以导入它。

这就是模块的复用价值。

前面学函数时,我们已经知道函数能复用逻辑。 现在模块更进一步:

把一组能复用的函数、类、常量,整体打包到一个文件里复用。

这会让代码越来越像“积木”,而不是每次都从零重写。

七、模块里通常会放什么

初学阶段,你可以把模块里常见内容分成四类。

函数 类 变量或常量 少量初始化代码

比如一个模块里可能会有:

PI = 3.14159defadd(a, b):return a + bclassCalculator:    ...

也就是说,模块不是只能放函数。 类也可以放,变量也可以放。

你甚至可以简单理解成:

一个模块,就是一个承载代码内容的独立 Python 文件。

只要这些内容逻辑上属于一类,就适合放在同一个模块里。

八、模块和类,不是一个层面的东西

这里很容易混,必须单独说一下。

很多新手学到这里,会把模块和类混成一层。其实不是。

类,是文件里面定义的一种结构。 模块,是装这些代码的文件本身。

比如你有一个文件叫:

book.py

这个文件是一个模块。 而文件里可以定义一个:

classBook:    ...

这里 Book 是类,不是模块。

你可以这样记:

类,是文件里的角色。 模块,是文件本身。

把这层关系分清,后面学导入时才不会乱。

九、先看一个特别小的模块例子

假设我们有一个文件叫 my_tools.py,内容如下:

defgreet(name):    print(f'你好,{name}')defsquare(num):return num * num

这里的 my_tools.py,就是一个模块。

它里面放了两个函数:

greet()square()

那接下来主程序就可以不用自己再写一遍,而是直接使用这个模块里的能力。

你现在先不要急着问具体导入语法,下一章我们会系统讲。 这一章你先把“模块就是独立 Python 文件”这个感觉建立起来最重要。

十、为什么说模块是从“练习代码”走向“项目代码”的分水岭

这句话你可以重点记一下。

刚开始写练习时,所有代码塞一个文件问题不大。 因为练习本来就短,也不会特别追求结构。

但一旦开始写稍微像样一点的小项目,你就会发现:

不拆模块,几乎一定会乱。

所以从某种意义上说,学模块就是在学一件事:

代码不再只是为了能跑,还要开始讲究结构。

这和前面学函数、学类是一个方向。

函数让你不再把重复流程到处抄。 类让你不再把角色信息写得散乱。 模块则让你不再把所有代码都堆在同一个文件。

这其实就是编程能力一步步升级的过程。

十一、模块和“命名”关系非常大

因为一个模块本质上就是一个文件,而文件名会直接影响阅读体验。

比如你看到:

math_utils.pyuser_service.pybook.pyconfig.py

大概一眼就知道各自用途。

但如果一个项目里到处都是:

test1.pydemo2.pyabc.pymyfile.py

那看的人会特别痛苦。

所以从模块这一章开始,你要慢慢建立一个意识:

文件名本身也是代码设计的一部分。

模块名尽量要做到:

简洁 清晰 表达内容用途

不要乱起。

因为一个项目写到后面,你找代码时,很多时候第一步就是先看模块名。

十二、模块其实也在推动“高内聚”

前面我们讲封装时,提到过“高内聚、低耦合”这个味道。现在模块这章,你会再次碰到同样的思路。

高内聚的意思是:相关的东西尽量放在一起。

比如:

字符串处理函数放一起 图书类和图书相关逻辑放一起 配置项放一起 用户相关逻辑放一起

这其实就是模块在做的事。

所以模块并不是孤立知识点,它和前面学过的设计思想是一致的。

本质上都在做同一件事:

让相关代码待在该待的位置。

这会直接提升可读性和可维护性。

十三、一个更贴近前面项目的例子

前一章我们做了一个图书借阅系统。

如果继续全部写在一个文件里,当然也能跑。 但如果你稍微把项目往真实一点的方向推进,就很适合拆成模块。

比如可以拆成这样:

book.py放 BookPaperBookEBook

user.py放 User

library.py放 Library

main.py放程序入口和运行代码

你会发现,一旦这么拆,项目立刻就像样很多。

谁负责图书 谁负责用户 谁负责图书馆逻辑 谁负责主程序入口

全都很清楚。

这就是模块的项目价值。

十四、为什么说“可以拆文件”本身就是一种能力

因为很多初学者虽然知道一个项目能有多个文件,但真正轮到自己写时,脑子里并没有结构意识。 结果就是所有代码还是会本能地往一个文件里堆。

能不能拆文件,不在于你知不知道有多个 .py 文件这回事,而在于你能不能判断:

哪些代码应该放一起 哪些代码应该分开 模块边界应该怎么划

这其实已经是工程化思维的雏形了。

比如你看到一个类越来越大,里面塞了很多不属于它的工具函数,这时候就应该开始警觉: 是不是有些东西应该拆去别的模块了。

所以模块这一章看起来是在讲文件,实际上是在训练结构感。

十五、模块不是拆得越碎越好

这也要提前提醒你。

有些人一学会模块,就很容易走向另一个极端:恨不得一个函数一个文件。 这样也不对。

模块拆分的目标是清晰,而不是碎片化。

如果你把关系很紧密的内容拆得太散,反而会增加跳转成本,弄得项目东一块西一块。

所以更好的原则是:

逻辑上高度相关的内容放在一起。逻辑上职责不同的内容再分开。

比如图书类和图书工具,可能放一起没问题。 但图书和用户通常就不适合硬塞一个文件里。

所以模块拆分也不是死规则,而是一种平衡。

十六、模块还有一个隐含好处:更方便测试

这个点现在先有个概念就够了。

如果你的代码全堆在一个大文件里,想单独验证某一部分逻辑会比较麻烦。 但如果功能已经拆成独立模块,你就可以更容易地单独测试和复用它。

比如你想验证 book.py 里的某个方法,或者 math_utils.py 里的某个函数,就不需要把整个主程序都跑起来。

这对后面学测试、学工程化非常重要。

所以模块不只是为了“看起来整齐”,它也会直接影响开发效率。

十七、现在你可以把模块理解成“文件级封装”

这个说法特别好记。

前面我们说类是在做对象级封装。 函数是在做流程级封装。

那模块其实可以理解成:

文件级封装。

你把一批相关代码装进一个文件里,对外提供可使用的内容。 外部不必知道这个文件内部是怎么组织的,只需要知道它能提供什么能力。

这样一串起来,模块这件事就不再孤零零了。

你会发现,它其实只是封装思想往更大一级继续延伸。

十八、一个很常见的误区:以为模块只是为了“让代码能 import”

这当然是模块的一个用途,但不是全部。

很多人一提模块,就只想到导入:

import xxx

这没错,下一章也会重点讲。 但如果你只把模块理解成“为了 import 才存在”,就太窄了。

模块更本质的价值是:

整理代码 划分职责 减少混乱 促进复用 支持项目结构成长

导入只是模块被使用时的一种手段。 不是模块存在的全部意义。

十九、本章小练习

你可以做两个很适合入门的练习。

第一个练习:

把你之前写过的数学函数,比如 add()sub()mul()div(),单独整理到一个新文件里,文件名就叫 my_math.py

第二个练习:

把你前面写过的 Book 类或者 Student 类,单独放到一个新文件里。 主程序先只保留创建对象和调用方法的部分。

你暂时不用追求写得多复杂。 重点是亲手感受一下:

当代码拆到不同文件里后,结构是不是立刻清楚了很多。

这一点,只有自己动手拆一次,感觉才会特别明显。

二十、本章总结

这一章最重要的,不是学会某一条导入语句,而是先把模块的直觉建立起来。

模块,本质上就是一个独立的 Python 文件。 代码之所以要拆文件,是因为项目一旦变大,所有内容堆在一个文件里会越来越难维护。 模块的核心价值,是整理代码、划分职责、支持复用。 函数是在组织步骤,类是在组织角色,模块是在组织文件层面的结构。 模块不是越碎越好,而是要按逻辑职责合理拆分。 学会模块,意味着你的代码开始从“练习式写法”走向“更像正式项目的写法”。

下一章我们继续往前走,正式进入最常见的导入话题:082|import 的几种写法,到底应该怎么用

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:19:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/499065.html
  2. 运行时间 : 0.727815s [ 吞吐率:1.37req/s ] 内存消耗:4,943.90kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1e2449fdd93e220e55f35198479727e8
  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.001067s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001528s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.022478s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.013475s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001791s ]
  6. SELECT * FROM `set` [ RunTime:0.012050s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001703s ]
  8. SELECT * FROM `article` WHERE `id` = 499065 LIMIT 1 [ RunTime:0.035434s ]
  9. UPDATE `article` SET `lasttime` = 1783016369 WHERE `id` = 499065 [ RunTime:0.002887s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.010112s ]
  11. SELECT * FROM `article` WHERE `id` < 499065 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.107631s ]
  12. SELECT * FROM `article` WHERE `id` > 499065 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.020610s ]
  13. SELECT * FROM `article` WHERE `id` < 499065 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.166049s ]
  14. SELECT * FROM `article` WHERE `id` < 499065 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.142180s ]
  15. SELECT * FROM `article` WHERE `id` < 499065 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.102829s ]
0.730613s