当前位置:首页>python>《Python 从入门到精通》074|init 方法详解:对象创建时到底发生了什么

《Python 从入门到精通》074|init 方法详解:对象创建时到底发生了什么

  • 2026-07-01 14:27:29
《Python 从入门到精通》074|init 方法详解:对象创建时到底发生了什么
今日分享:学习的本质是极致的重复!

上一章我们已经知道,对象之所以能“各有各的数据”,靠的是实例属性。

比如你已经会写:

classStudent:defintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')stu1 = Student()stu1.name = '张三'stu1.age = 18stu1.score = 95

这种写法能不能用?当然能。 而且对理解实例属性非常有帮助。

但你很快就会发现,它有两个明显问题。

第一,麻烦。 每创建一个对象,都要手动一条一条补属性。

第二,不稳。 如果你忘了给某个属性赋值,方法一调用,就可能直接报错。

比如你只写了:

stu1 = Student()stu1.name = '张三'

但没有写 age 和 score,这时候去调用 introduce(),程序就容易出问题。

所以,面向对象里很快就要引出一个特别重要的方法:

__init__

这一章,我们就把它彻底讲清。

一、先说结论,init 是干什么的

你先别急着看复杂解释,先记一句最实用的话:

__init__ 是对象创建时自动执行的初始化方法。

什么叫初始化?

你可以理解成:

对象刚刚被创建出来时,顺手把它该有的数据准备好。

也就是说,以前你是这样干的:

先创建对象 再手动一个个补属性

现在有了 __init__ 以后,可以变成:

创建对象的同时,把属性直接准备好

这就是它最核心的价值。

二、为什么对象创建时需要一个专门的方法

因为现实里的很多对象,刚一出生就应该带着基本信息,而不是先空着。

比如一个学生对象,正常情况下至少应该有:

姓名 年龄 成绩

比如一个汽车对象,通常也应该有:

品牌 颜色 价格

如果对象刚创建出来时完全是空壳子,后面再零零碎碎补,既麻烦,也容易漏。

所以 __init__ 的作用,本质上就是:

规定对象在出生那一刻,应该先拥有哪些基本属性。

你可以把它理解成“对象的出生流程”。

三、先看最基本的写法

__init__ 的基本结构长这样:

class 类名:def__init__(self):        初始化代码

比如:

classStudent:def__init__(self):        print('一个学生对象被创建了')

然后创建对象:

stu1 = Student()

运行后会输出:

一个学生对象被创建了

这就说明,__init__ 不需要你手动调用。 只要你执行了:

Student()

对象一创建,__init__ 就会自动执行。

这一点非常关键。

四、为什么它叫双下划线 init 双下划线

你可能已经注意到了,这个名字长得有点特殊:

__init__

前后各有两个下划线。

这种名字在 Python 里通常表示一种特殊方法。 你现在不用一下子研究所有特殊方法,只要先记住:

__init__ 是 Python 约定好的初始化方法名字。

它不是你随便起的。 你写成别的名字,比如:

definit(self):

那就不是这个效果了,创建对象时也不会自动执行。

所以这里一定要记准确。

五、对象创建时,到底发生了什么

这一章的标题就要回答这个问题。

当你写:

stu1 = Student()

表面上看,好像只是在“创建一个对象”。 但实际上,背后至少发生了两件事。

第一,Python 先帮你创建出一个新的 Student 对象。 第二,创建完成后,自动执行这个类里的 __init__ 方法。

所以更准确地说:

Student() 不只是“造对象”, 还是“造完对象后,顺手做初始化”。

这就是为什么我们说,__init__ 是对象创建时自动执行的初始化方法。

你现在只要把这条主线抓住,后面很多细节都会顺。

六、真正实用的写法,是在 init 里给属性赋值

前面那个打印一句话的例子,只是为了让你感受到自动执行。 真正高频的用法,是在 __init__ 里给对象设置初始属性。

比如:

classStudent:def__init__(self):        self.name = '张三'        self.age = 18        self.score = 95defintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')

然后创建对象并调用方法:

stu1 = Student()stu1.introduce()

输出结果:

我叫张三,今年18岁,成绩是95

这里最关键的地方是:

self.name = '张三'self.age = 18self.score = 95

这说明,__init__ 非常适合做“对象刚创建时的属性准备工作”。

七、但这样写还有一个问题

你可能立刻就会发现,刚才这个写法虽然比手动补属性规范了一点,但它还是不够灵活。

因为现在每创建一个学生对象,默认都是:

张三 18 岁 95 分

那如果我想要创建李四、王五怎么办?

总不能每次都改类里的代码吧。

所以真正更常用的写法,是让 __init__ 接收参数。

也就是说:

创建对象时,把不同数据传进去。__init__ 再把这些数据装到对象自己身上。

这一步一出来,面向对象才真正顺起来。

八、最常见的 init 写法:带参数初始化

看下面这个版本:

classStudent:def__init__(self, name, age, score):        self.name = name        self.age = age        self.score = scoredefintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')

创建对象时这样写:

stu1 = Student('张三'1895)stu2 = Student('李四'1988)stu1.introduce()stu2.introduce()

输出结果:

我叫张三,今年18岁,成绩是95我叫李四,今年19岁,成绩是88

这段代码非常非常重要。

因为从这里开始,你已经进入了类最常见、最标准的使用方式。

九、这一行到底在干什么

很多新手第一次看到下面这句时,会有点晕:

self.name = name

其实你把它翻译成人话就行:

把传进来的 name,存到这个对象自己的 name 属性里。

再看一遍:

def__init__(self, name, age, score):    self.name = name    self.age = age    self.score = score

左边的:

self.nameself.ageself.score

表示对象自己的属性。

右边的:

nameagescore

表示创建对象时传进来的参数。

所以这一段代码,本质上就是在做属性绑定。

你可以把它想成:

外面传数据进来 对象自己收下并保存

十、创建对象时传参数,和调用函数很像

这个地方你可以借用前面学函数的理解。

比如普通函数你会写:

defadd(a, b):return a + b

调用时:

add(35)

而现在类里写的是:

def__init__(self, name, age, score):    ...

创建对象时:

Student('张三'1895)

是不是有点像?

没错,本质上它就是在传参数。 只不过这里不是在调用普通函数,而是在创建对象时把参数交给 __init__ 去处理。

所以你不要把 __init__ 想得太神秘。 它首先是一个方法,然后碰巧在对象创建时自动被调用。

十一、为什么有了 init 以后,代码会整洁很多

对比一下两种写法。

第一种,手动补属性:

classStudent:defintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')stu1 = Student()stu1.name = '张三'stu1.age = 18stu1.score = 95

第二种,使用 __init__

classStudent:def__init__(self, name, age, score):        self.name = name        self.age = age        self.score = scoredefintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')stu1 = Student('张三'1895)

显然,第二种更集中,也更规范。

创建对象时,该有的数据一次给齐。 对象一出生就是完整状态。 后面的方法也更放心使用这些属性。

这就是 __init__ 最大的实战价值。

十二、为什么说 init 让对象从“空壳”变成“成品”

如果没有 __init__,对象刚创建出来,往往只是一个空壳子。

比如:

stu1 = Student()

这时候它可能什么属性都没有。 你还得手动补。

但有了 __init__ 以后:

stu1 = Student('张三'1895)

对象一创建,姓名、年龄、成绩就都准备好了。

这就像生产线一样。

以前是先造一个空盒子,再手工往里塞东西。 现在是出厂时就已经配齐。

所以 __init__ 的本质,其实就是让对象更像一个完整成品,而不是半成品。

十三、一个更贴近现实的例子:汽车类

我们再看一个汽车例子:

classCar:def__init__(self, brand, color, price):        self.brand = brand        self.color = color        self.price = pricedefshow_info(self):        print(f'这辆车的品牌是{self.brand},颜色是{self.color},价格是{self.price}元')

创建对象:

car1 = Car('比亚迪''白色'120000)car2 = Car('特斯拉''黑色'260000)car1.show_info()car2.show_info()

输出结果:

这辆车的品牌是比亚迪,颜色是白色,价格是120000这辆车的品牌是特斯拉,颜色是黑色,价格是260000

这段代码已经非常接近真实开发中的类使用方式了。

类定义共同结构。__init__ 负责初始化对象数据。 方法负责利用对象数据执行行为。

十四、如果传参个数不对,会怎么样

这点你一定要提前有意识。

比如类是这样定义的:

classStudent:def__init__(self, name, age, score):        self.name = name        self.age = age        self.score = score

那么创建对象时,就应该传三个参数:

stu1 = Student('张三'1895)

如果你少传一个:

stu1 = Student('张三'18)

或者多传一个:

stu1 = Student('张三'1895'男')

程序就会报错。

为什么?

因为 __init__ 已经规定好了对象初始化时需要哪些数据。 你传得不对,程序自然没法按预期完成初始化。

这也说明了一件事:

__init__ 不只是赋值工具,它也在规定对象创建时的数据要求。

十五、init 里除了赋值,还能做别的事吗

能。

虽然最常见的用法是给属性赋值,但你也可以在里面写一些初始化相关的逻辑。

比如:

classUser:def__init__(self, username):        self.username = username        print(f'用户 {self.username} 已创建')

创建对象时:

u1 = User('admin')

输出:

用户 admin 已创建

再比如可以做简单计算:

classRectangle:def__init__(self, width, height):        self.width = width        self.height = height        self.area = width * height

这说明,__init__ 不只是存数据,也可以顺手做一些和初始化有关的准备动作。

不过初学阶段,你先把重点放在“设置属性”上就够了。

十六、init 不是返回对象的方法

这是个特别容易误解的点。

有些新手会下意识觉得,既然对象创建时会执行 __init__,那是不是它负责“返回对象”。

你现在先不用钻太深底层,只要记住一个实用结论:

__init__ 的主要职责是初始化对象,不是负责把对象造出来。

对象创建这件事,本身是 Python 在做。__init__ 是在对象已经创建出来之后,继续负责给它准备初始状态。

所以你通常不会在 __init__ 里写什么返回值。 它不是普通函数意义上的“加工后返回结果”。

这点先有印象就够,后面你会越来越自然。

十七、再看一个学生类完整例子

下面这个例子建议你亲手敲一遍。

classStudent:def__init__(self, name, age, score):        self.name = name        self.age = age        self.score = scoredefintroduce(self):        print(f'我叫{self.name},今年{self.age}岁,成绩是{self.score}分')defis_passed(self):if self.score >= 60:            print(f'{self.name} 已经及格了')else:            print(f'{self.name} 没有及格')

创建对象并调用:

stu1 = Student('张三'1895)stu2 = Student('李四'1958)stu1.introduce()stu1.is_passed()stu2.introduce()stu2.is_passed()

输出结果:

我叫张三,今年18岁,成绩是95张三 已经及格了我叫李四,今年19岁,成绩是58李四 没有及格

这个例子已经把前几章的核心内容真正串起来了。

类 对象 实例属性 实例方法__init__

一旦你能顺手写出这种代码,说明你已经真正开始掌握面向对象了。

十八、为什么这章之后,类会突然顺很多

因为 __init__ 解决了一个最关键的问题:

对象的数据,到底该什么时候准备好。

前一章你已经知道,属性是对象自己的数据。 但没有 __init__ 时,属性像是后补进去的。 而有了 __init__ 以后,属性的归属、来源、创建时机,一下就清楚了。

也就是说,__init__ 把对象创建这件事正式规范起来了。

从这一章开始,你写类才真正开始像“正常的类写法”。

十九、本章小练习

你可以做两个很适合巩固的练习。

第一个练习,定义一个 Book 类。

要求:

通过 __init__ 接收 titleauthorprice有一个 show_info() 方法,输出图书信息

参考代码:

classBook:def__init__(self, title, author, price):        self.title = title        self.author = author        self.price = pricedefshow_info(self):        print(f'书名:{self.title},作者:{self.author},价格:{self.price}元')book1 = Book('Python 入门''小王'59)book2 = Book('数据分析实战''老李'88)book1.show_info()book2.show_info()

第二个练习,定义一个 Phone 类。

要求:

通过 __init__ 接收 brand 和 battery有一个 charge() 方法,每次调用电量加 10

参考代码:

classPhone:def__init__(self, brand, battery):        self.brand = brand        self.battery = batterydefcharge(self):        self.battery = self.battery + 10        print(f'{self.brand} 当前电量是 {self.battery}%')phone1 = Phone('华为'50)phone1.charge()phone1.charge()

这两个练习一个练初始化属性,一个练方法修改属性,非常适合把这章内容落下来。

二十、本章总结

这一章你真正拿下了面向对象里最关键的一块内容之一。

__init__ 是对象创建时自动执行的初始化方法。 它最常见的作用,是在对象创建时给实例属性赋初值。 有了它以后,对象不再是空壳子,而是一出生就带着完整数据。 创建对象时传入的参数,会交给 __init__ 去处理。self.name = name 这种写法,本质上就是把传进来的值保存到对象自己的属性里。__init__ 不负责“返回对象”,它负责的是“初始化对象”。 从这一章开始,类的写法才真正进入最常见、最规范的形态。

下一章我们继续把一个让无数新手卡住的问题彻底讲清:075|self 到底是谁:新手最常见疑惑彻底讲清

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 08:13:03 HTTP/2.0 GET : https://f.mffb.com.cn/a/497513.html
  2. 运行时间 : 0.103578s [ 吞吐率:9.65req/s ] 内存消耗:5,291.85kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ff56c4407ed5f95c580e2552b20414cf
  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.000782s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000864s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000353s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000276s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000501s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000577s ]
  8. SELECT * FROM `article` WHERE `id` = 497513 LIMIT 1 [ RunTime:0.005794s ]
  9. UPDATE `article` SET `lasttime` = 1783037583 WHERE `id` = 497513 [ RunTime:0.005673s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000320s ]
  11. SELECT * FROM `article` WHERE `id` < 497513 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000513s ]
  12. SELECT * FROM `article` WHERE `id` > 497513 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006368s ]
  13. SELECT * FROM `article` WHERE `id` < 497513 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001216s ]
  14. SELECT * FROM `article` WHERE `id` < 497513 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001419s ]
  15. SELECT * FROM `article` WHERE `id` < 497513 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005609s ]
0.105195s