当前位置:首页>python>Python函数全解:def、参数、作用域与模块入门

Python函数全解:def、参数、作用域与模块入门

  • 2026-06-30 08:16:15
Python函数全解:def、参数、作用域与模块入门
一、为什么要有函数
假设你要计算三个圆的面积,半径分别为3、5、7。没有函数时你会这样写:
# 圆1pi = 3.14159area1 = pi * 3 * 3print(area1)# 圆2area2 = pi * 5 * 5print(area2)# 圆3area3 = pi * 7 * 7print(area3)
半径越多,重复越多。更糟的是,如果哪天要把π换成更高精度的值,你得改三处。
用函数重构之后:
def circle_area(radius):    return 3.14159 * radius * radiusprint(circle_area(3))print(circle_area(5))print(circle_area(7))
函数解决的三个核心问题:消除重复、便于修改、语义清晰。读到circle_area(5),你立刻知道这是在算什么,而不需要逐行分析代码逻辑。
二、函数的定义与调用
基本语法
def 函数名(参数列表):    """文档字符串(可选)"""    函数体    return 返回值  # 可选
一个真实的例子:
def greet(name):    """向指定用户打招呼"""    return f"你好,{name}!欢迎回来。"result = greet("小明")print(result)  # 你好,小明!欢迎回来。
无参函数与无返回值函数
函数不一定要接收参数,也不一定要返回东西:
def show_banner():    print("=" * 30)    print("  欢迎使用学生管理系统  ")    print("=" * 30)show_banner()
当函数没有return语句(或写了return但不带值)时,它默认返回None
output = show_banner()  # 打印了横幅print(output)            # None
三、参数——函数的核心难点
参数是新手最容易踩坑的地方。我们逐一击破。
3.1 位置参数
最常见的传参方式,按顺序一一对应:
def describe_pet(name, animal_type):    print(f"{name}是一只{animal_type}")describe_pet("旺财""狗")   # 旺财是一只狗describe_pet("狗""旺财")   # 狗是一只旺财  ← 顺序错了,语义就崩了
位置参数要求调用者记住参数顺序,数量多了容易出错。
3.2 关键字参数
调用时显式指定参数名,顺序无所谓:
describe_pet(animal_type="猫", name="咪咪")  # 咪咪是一只猫describe_pet(name="咪咪", animal_type="猫")  # 效果完全相同
关键字参数让调用意图一目了然,强烈推荐在参数较多时使用。
3.3 默认参数
定义函数时给参数一个默认值,调用时可传可不传:
def describe_pet(name, animal_type="狗"):    print(f"{name}是一只{animal_type}")describe_pet("旺财")                # 旺财是一只狗describe_pet("咪咪", animal_type="猫")  # 咪咪是一只猫
⚠️ 经典陷阱:可变对象作默认值
# 错误写法——几乎所有新手都会踩的坑def add_item(item, target=[]):    target.append(item)    return targetprint(add_item(1)) # [1]print(add_item(2)) # [1, 2]  ← 你以为会是[2],但默认列表被重复使用了!print(add_item(3)) # [1, 2, 3]
原因:Python在定义函数时只计算一次默认值,之后每次调用都复用同一个列表对象。
正确做法:
def add_item(item, target=None):    if target is None:        target = []    target.append(item)    return targetprint(add_item(1))  # [1]print(add_item(2))  # [2]print(add_item(3))  # [3]
3.4 可变参数:*args
当你不知道调用者会传多少个位置参数时,用*args接收为一个元组:
def sum_all(*numbers):    total = 0    for n in numbers:        total += n    return totalprint(sum_all(12))           # 3print(sum_all(12345))  # 15print(sum_all())               # 0
*的名字不一定要叫args,但*args几乎是Python社区的约定俗成。
3.5 关键字可变参数:**kwargs
**kwargs把额外的关键字参数打包成一个字典:
def build_profile(name, **info):    profile = {"name": name}    profile.update(info)    return profileuser = build_profile("小明", age=18, city="北京", hobby="编程")print(user)# {'name''小明''age'18'city''北京''hobby''编程'}
*args**kwargs可以同时使用,配合参数传递非常灵活:
def log(message, *args, **kwargs):    print(f"[LOG] {message}")    if args:        print(f"  附加数据: {args}")    if kwargs:        print(f"  附加信息: {kwargs}")log("用户登录""127.0.0.1""Chrome", user_id=1001, level="INFO")# [LOG] 用户登录#   附加数据: ('127.0.0.1', 'Chrome')#   附加信息: {'user_id': 1001, 'level': 'INFO'}
3.6 参数的“排座次”
定义函数时,参数顺序有严格规定:
def func(位置参数, 默认参数, *args, 仅限关键字参数, **kwargs)
简单记忆:先位置,再默认,然后打包,最后字典
def demo(a, b, c=0, *args, d, **kwargs):    print(a, b, c, args, d, kwargs)demo(12345, d=6, e=7, f=8)# 1 2 3 (4, 5) 6 {'e': 7, 'f': 8}
注意:d*args之后,所以调用时必须用关键字方式传——这叫“仅限关键字参数”(keyword-only argument)。
四、作用域——变量在哪里可见
4.1 LEGB规则
Python查找变量名时遵循四层作用域,从内到外:
层级
全称
说明
L
Local
函数内部
E
Enclosing
外层函数的局部作用域(嵌套函数)
G
Global
模块(文件)级别的全局作用域
B
Built-in
Python内置的名字(print、len等)
x = "global"          # 全局def outer():    x = "enclosing"   # 外层函数的局部    def inner():        x = "local"   # 内层函数的局部        print(x)      # 查找顺序:local → enclosing → global → built-in    inner()outer()  # 输出 local
4.2 global 与 nonlocal
在函数内部默认只能读取全局变量,如果要修改,需要声明:
count = 0def increment():    global count       # 告诉Python:我要用的是外面的那个count    count += 1increment()print(count)  # 1
嵌套函数中修改外层函数的变量,用nonlocal
def outer():    x = 10    def inner():        nonlocal x        x = 20    inner()    print(x)  # 20(被inner修改了)outer()
五、return 不止于返回
一个函数可以返回多个值(本质是返回一个元组):
def min_max(numbers):    return min(numbers), max(numbers)low, high = min_max([314159])print(low)   # 1print(high)  # 9
提前返回是一种常见的防御式编程手法——条件不满足就尽早退出:
def divide(a, b):    if b == 0:        return "除数不能为零"    return a / b
六、模块——让代码跨文件复用
写多了函数,一个文件会变得臃肿。模块让函数可以分文件存放。
6.1 创建模块
新建文件math_utils.py
# math_utils.pyPI = 3.14159def circle_area(radius):    return PI * radius * radiusdef circle_perimeter(radius):    return 2 * PI * radius
6.2 导入方式对比
写法
调用方式
适用场景
import math_utilsmath_utils.circle_area(5)
需要明确函数来源
from math_utils import circle_areacircle_area(5)
只用一个函数
from math_utils import *circle_area(5)不推荐
,污染命名空间
import math_utils as mumu.circle_area(5)
模块名太长时取别名
6.3 __name__ == '__main__' 是什么
每个Python文件都有一个内置变量__name__
  • 当文件被直接运行时,__name__的值是'__main__'
  • 当文件被import导入时,__name__的值是文件名(模块名)
这引出一个经典写法:
# math_utils.pydef circle_area(radius):    return 3.14159 * radius * radiusdef main():    # 测试代码    print(circle_area(3))    print(circle_area(5))if __name__ == '__main__':    main()
效果:直接执行python math_utils.py会运行main()做测试;被其他文件import math_utils时,测试代码不会执行,只有函数定义被导入。一举两得。
七、一个综合示例
把今天学的串起来。写一个简单的“学生成绩管理”模块:
# grade_manager.py"""学生成绩管理模块"""def average(*scores):    """计算平均分"""    if not scores:        return 0    return sum(scores) / len(scores)def grade_level(score, thresholds=None):    """根据分数返回等级"""    if thresholds is None:        thresholds = {"优秀"90"良好"80"中等"70"及格"60}    for level, limit in thresholds.items():        if score >= limit:            return level    return "不及格"def report(name, **subject_scores):    """生成学生成绩报告"""    scores = list(subject_scores.values())    avg = average(*scores)    level = grade_level(avg)    print(f"=== {name} 的成绩报告 ===")    for subject, score in subject_scores.items():        print(f"  {subject}{score}")    print(f"  平均分: {avg:.1f} ({level})")    print("=" * 25)if __name__ == '__main__':    report("小明", 数学=92, 英语=85, 语文=78, 物理=88)
运行结果:
=== 小明 的成绩报告 ===  数学: 92  英语: 85  语文: 78  物理: 88  平均分: 85.8 (良好)=========================
这个例子用到了默认参数的安全写法(thresholds=None)、*args解包传参、**kwargs接受可变关键字——都是今天讲的核心知识点。
写在最后
这篇我们讲了函数定义、五种参数形态、LEGB作用域、return用法,以及模块的基本操作。如果你能把“默认参数的列表陷阱”和“__name__ == '__main__'”这两个点讲给别人听,说明你真的理解了。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:30:04 HTTP/2.0 GET : https://f.mffb.com.cn/a/499886.html
  2. 运行时间 : 0.115328s [ 吞吐率:8.67req/s ] 内存消耗:4,579.75kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2a3027f73c36f7a96e50725c407c8971
  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.000546s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000977s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000360s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000245s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000495s ]
  6. SELECT * FROM `set` [ RunTime:0.000222s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000606s ]
  8. SELECT * FROM `article` WHERE `id` = 499886 LIMIT 1 [ RunTime:0.000524s ]
  9. UPDATE `article` SET `lasttime` = 1783017004 WHERE `id` = 499886 [ RunTime:0.018610s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000386s ]
  11. SELECT * FROM `article` WHERE `id` < 499886 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000473s ]
  12. SELECT * FROM `article` WHERE `id` > 499886 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000467s ]
  13. SELECT * FROM `article` WHERE `id` < 499886 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000689s ]
  14. SELECT * FROM `article` WHERE `id` < 499886 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001636s ]
  15. SELECT * FROM `article` WHERE `id` < 499886 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.018719s ]
0.116907s