乐于分享
好东西不私藏

使用openclaw制作python零基础教学-11

使用openclaw制作python零基础教学-11

零基础学Python:Day11!类和对象:面向对象编程入门

昨天我们学习了Python中模块和包的使用,学会了怎么组织代码和复用别人写好的功能。老规矩,先公布昨天的作业答案,看看你都做对了没~

📋 昨日作业答案

1. 自定义一个模块utils.py,在里面写两个函数:一个判断偶数(输入整数返回True/False),一个计算列表所有偶数的和,然后在main.py中导入这个模块,测试你的函数

utils.py模块内容:

# utils.pydef is_even(num):"""判断一个数是不是偶数"""return num % 2 == 0def sum_even_list(num_list):"""计算列表中所有偶数的和"""    total = 0for num in num_list:if is_even(num):            total += numreturn total

main.py导入测试:

# main.pyimport utilsprint(utils.is_even(4))  # Trueprint(utils.is_even(7))  # Falsetest_list = [12345678910]print(f"列表中偶数的和:{utils.sum_even_list(test_list)}"# 输出:2+4+6+8+10 = 30

就是这么简单,模块拆分后逻辑清晰,导入就能用,你写对了吗?

2. 使用random模块实现一个猜数字游戏:程序随机生成一个1-100之间的数字,让用户猜,用户输入数字后,提示猜大了还是猜小了,直到猜对为止,最后统计猜了多少次

import random# 生成随机数secret_num = random.randint(1100)guess_count = 0print("欢迎来到猜数字游戏!我生成了一个1-100之间的整数,你来猜猜看~")while True:    user_input = input("请输入你猜的数字:")    guess_count += 1try:        guess = int(user_input)except ValueError:print("请输入合法的整数!")continueif guess < or guess > 100:print("请输入1-100之间的数字!")continueif guess == secret_num:print(f"恭喜你猜对了!你一共猜了{guess_count}次")breakelif guess > secret_num:print("猜大了,再小一点")else:print("猜小了,再大一点")

运行起来就能玩了,很有趣的小游戏,用到了我们之前学的循环和异常处理,逻辑非常清晰。

3. 使用datetime模块计算距离你下一个生日还有多少天

from datetime import datetime, timedelta# 输入你的生日,月-日格式birthday_input = input("请输入你的生日(格式:MM-DD,比如08-15):")birthday_month, birthday_day = map(int, birthday_input.split("-"))today = datetime.now()current_year = today.year# 计算今年生日日期this_year_birthday = datetime(current_year, birthday_month, birthday_day)# 如果今年生日已经过了,就计算明年生日if today > this_year_birthday:    next_birthday = datetime(current_year + 1, birthday_month, birthday_day)else:    next_birthday = this_year_birthdaydelta = next_birthday - todayprint(f"距离你的下一个生日还有:{delta.days}天")

代码处理了生日已经过了的情况,自动计算明年的生日,非常贴心,你可以自己试试,输入你的生日看看结果~

4. 创建一个包my_tools,里面放两个模块string_utils.pymath_utils.py,分别放几个字符串工具函数和数学工具函数,然后在主程序中导入包里面的模块并使用

首先创建项目目录结构:

project/├── main.py└── my_tools/    ├── __init__.py    ├── string_utils.py    └── math_utils.py

string_utils.py(字符串工具模块):

# my_tools/string_utils.pydef reverse_str(s):"""反转字符串"""return s[::-1]def is_palindrome(s):"""判断是不是回文串"""return s == reverse_str(s)

math_utils.py(数学工具模块):

# my_tools/math_utils.pydef factorial(n):"""计算n的阶乘"""    result = 1for i in range(1, n+1):        result *= ireturn resultdef gcd(a, b):"""计算两个数的最大公约数"""while b:        a, b = b, a % breturn a

__init__.py可以是空文件,或者导出函数方便导入。

然后在main.py导入使用:

# main.pyfrom my_tools import string_utils, math_utilsprint(string_utils.reverse_str("Hello")) # olleHprint(string_utils.is_palindrome("abba")) # Trueprint(math_utils.factorial(5)) # 120print(math_utils.gcd(1218)) # 6

完美,包和模块都创建成功,导入使用正常,你掌握了包的使用了吗?


对完答案,我们开始今天的正题:类和对象,面向对象编程!到今天为止,我们之前写的代码都是面向过程的,也就是一步一步按顺序写,执行完就结束。而面向对象是另一种编程思想,它把数据和操作数据的方法绑定在一起,更适合开发大型项目,代码更容易维护和扩展。

面向对象是Python非常核心的知识点,几乎所有Python库都是基于面向对象实现的,所以一定要掌握它,我们今天就从入门开始,一步步带你理解!


🤔 什么是类?什么是对象?

可能你第一次听说"类和对象",感觉有点抽象,我们用生活中的例子来理解,就非常简单了:

  • 类(Class):是一个模板,抽象的描述,比如"猫"这个类别,就是一个类,它描述了所有猫共有的特征和行为
  • 对象(Object):是根据模板创建出来的具体实例,比如你家里那只叫"橘橘"的猫,就是一个具体的对象

我们再举个例子:

  • 类:"汽车",描述了汽车都有颜色、品牌、速度这些属性,都有启动、加速、刹车这些行为
  • 对象:你楼下那辆红色特斯拉Model 3,就是一个具体的汽车对象

一句话总结:类是模板,对象是模板造出来的具体东西,一个类可以造出无数个对象。

面向对象编程就是这么来的,我们用类描述事物共有的属性(特征)和方法(行为),然后创建具体的对象来使用,非常符合我们人类认识世界的方式。


Python中定义类和创建对象

Python中定义类用class关键字,基本语法:

class 类名:# 初始化方法,创建对象的时候自动调用def __init__(self, 参数1, 参数2):self.属性1 = 参数1self.属性2 = 参数2# 定义方法(行为)def 方法名(self):# 方法代码pass

我们来定义一个最简单的类:

class Cat:def __init__(self, name, color):"""初始化方法,给猫对象设置名字和颜色"""self.name = name  # 名字属性self.color = color # 颜色属性def meow(self):"""猫叫方法"""print(f"我是{self.color}{self.name},喵~")

这样我们就定义好了一个Cat类,现在我们根据这个类创建具体的猫对象:

# 创建两只不同的猫对象cat1 = Cat("橘橘""橘黄色")cat2 = Cat("煤球""黑色")# 调用它们的meow方法cat1.meow() # 输出:我是橘黄色的橘橘,喵~cat2.meow() # 输出:我是黑色的煤球,喵~

完美!同一个模板创建出来的两个对象,各自有自己的属性,调用方法输出各自不同的内容,这就是类和对象最基本的用法。

关于self你需要知道

你可能注意到,每个方法第一个参数都是self,这是什么意思呢?

  • self代表的是当前对象本身,当对象调用方法的时候,Python会自动把对象自己传给self参数,所以你不用自己传
  • 在类的内部,要访问对象的属性或者调用对象的方法,都需要通过self.属性名或者self.方法名()

记住这个规则就OK:定义方法的时候必须写self,调用方法的时候不用传self

__init__方法是什么?

__init__方法是Python中的初始化方法,也叫构造方法,当你创建对象的时候,它会自动执行,用来给对象初始化属性,不用你手动调用。

两个下划线开头和结尾的方法,都是Python中的特殊方法,有特殊用途,我们后面会认识更多。


封装、继承、多态:面向对象三大特性

面向对象编程有三大核心特性:封装、继承、多态,我们一个个来讲:

1. 封装

封装就是说,把对象的属性和方法封装在一起,隐藏内部实现细节,只对外暴露必要的接口,简单理解就是:该公开的公开,该隐藏的隐藏,使用者不用知道内部怎么实现,只要会用接口就行。

举个例子,我们的手机,封装了所有内部电路,你只需要按开机键、点屏幕就行,不用知道里面芯片怎么工作,这就是封装。

在Python中,我们一般用单下划线开头表示私有属性(约定俗成,不建议外部直接访问):

class Person:def __init__(self, name, age):self.name = nameself._age = age # 私有属性,不建议外部直接访问# 提供公开方法获取和修改年龄def get_age(self):return self._agedef set_age(self, new_age):if 0 < new_age < 120# 可以在这里做数据校验self._age = new_ageelse:print("年龄不合法!")

封装的好处就是,我们可以在修改数据之前做校验,保证数据安全,内部实现改了不影响外部使用,这就是封装的意义。

2. 继承

继承就是说,一个类可以继承另一个类,继承之后,子类拥有父类所有的属性和方法,还可以添加自己特有的属性和方法,实现代码复用。

举个例子:我们先写一个Animal(动物)父类,里面有所有动物共有的属性和方法:

class Animal:def __init__(self, name):self.name = namedef eat(self):print(f"{self.name}会吃东西")

然后我们写Dog(狗)类和Cat(猫)类,继承自Animal

# Dog继承Animalclass Dog(Animal):def bark(self):# Dog自己特有的方法print(f"{self.name}会汪汪叫")# Cat继承Animalclass Cat(Animal):def meow(self):# Cat自己特有的方法print(f"{self.name}会喵喵叫")

现在我们创建子类对象,看看能不能用父类的方法:

dog = Dog("旺财")dog.eat() # 输出:旺财会吃东西(继承自父类的方法)dog.bark() # 输出:旺财会汪汪叫(子类自己的方法)cat = Cat("橘橘")cat.eat() # 输出:橘橘会吃东西(继承自父类)cat.meow() # 输出:橘橘会喵喵叫(子类自己)

完美!继承成功了,我们不用在每个子类里重新写eat方法,直接继承过来用就行,大大减少了重复代码,这就是继承的好处。

如果子类需要改写父类的方法,直接重写就行,比如:

class Dog(Animal):def eat(self):# 重写父类的eat方法print(f"{self.name}是狗狗,它吃肉")

创建对象调用eat的时候,就会调用子类重写的版本了。

3. 多态

多态就是说,不同的对象调用同一个方法,会产生不同的结果,这就是多态。多态是继承带来的,我们来看例子:

class Animal:def speak(self):passclass Dog(Animal):def speak(self):print("汪汪汪")class Cat(Animal):def speak(self):print("喵喵喵")class Cow(Animal):def speak(self):print("哞哞哞")# 多态演示def animal_speak(animal):    animal.speak()# 不同对象调用同一个方法,结果不同animal_speak(Dog()) # 汪汪汪animal_speak(Cat()) # 喵喵喵animal_speak(Cow()) # 哞哞哞

看到了吗?同一个animal_speak函数,传入不同的动物对象,就会输出不同的结果,这就是多态。多态让我们的代码非常灵活,容易扩展,新增一个动物种类,只要继承Animal,实现speak方法就行,不用改原来的代码。

封装、继承、多态,就是面向对象的三大核心特性,理解了这三个,你就理解了面向对象的基本思想。


🎯 实战小案例:写一个学生管理类

我们来写一个简单的学生管理类,巩固一下今天学的知识点:

class StudentManager:def __init__(self):# 初始化一个空列表存储学生self.students = []def add_student(self, name, age, score):"""添加学生"""        student = {"name": name,"age": age,"score": score        }self.students.append(student)print(f"添加学生成功:{name}")def show_all(self):"""显示所有学生"""if not self.students:print("还没有任何学生")returnprint("当前所有学生信息:")for i, student in enumerate(self.students, 1):print(f"{i}. 姓名:{student['name']},年龄:{student['age']},分数:{student['score']}")def get_top_student(self):"""找出分数最高的学生"""if not self.students:return None        top = max(self.students, key=lambda s: s["score"])print(f"分数最高的学生是:{top['name']},分数:{top['score']}")return top# 测试使用manager = StudentManager()manager.add_student("小明"1890)manager.add_student("小红"1795)manager.add_student("小刚"1888)manager.show_all()manager.get_top_student()

运行结果:

添加学生成功:小明添加学生成功:小红添加学生成功:小刚当前所有学生信息:1. 姓名:小明,年龄:18,分数:902. 姓名:小红,年龄:17,分数:953. 姓名:小刚,年龄:18,分数:88分数最高的学生是:小红,分数:95

完美,一个简单的学生管理类就写好了,把数据(students列表)和操作数据的方法(add_student/show_all/get_top_student)封装在一起,逻辑清晰,使用方便,这就是面向对象的优势。


📝 今日小结

今天我们入门了Python面向对象编程,学习了类和对象,总结一下核心知识点:

  1. 基本概念:类是模板,对象是根据模板创建的具体实例
  2. 定义类:用class关键字定义类,__init__方法初始化对象属性,第一个参数self代表当前对象
  3. 三大特性
    • 封装:把属性和方法封装在一起,隐藏内部细节,暴露必要接口
    • 继承:子类继承父类,复用父类代码,还可以扩展自己的功能
    • 多态:不同对象调用同一个方法,产生不同结果,让代码更灵活
  4. 面向对象适合开发大型项目,代码更容易维护和扩展

面向对象是Python的核心编程思想,我们后面写项目都会用到它,一定要多练习理解。


🏋️ 今日作业

动手写代码才能真正理解,今天的作业:

1. 定义一个Rectangle(矩形)类,有长和宽两个属性,定义两个方法:计算面积和计算周长,然后创建对象测试

2. 定义一个Person类,有姓名、年龄属性,定义一个introduce方法,输出"我叫xx,今年xx岁"

3. 定义一个Animal父类,有move方法,然后定义Fish(鱼)子类继承Animal,重写move方法输出"鱼在水里游",定义Bird(鸟)子类,重写move方法输出"鸟在天上飞"

4. 拓展练习:用面向对象写一个简单的计算器类,实现加减乘除四个功能


好啦,今天我们入门了面向对象的类和对象,明天我们继续深入学习面向对象的进阶知识,比如魔法方法、属性和继承的进阶用法,敬请期待~

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