当前位置:首页>python>每天学习一点Python——函数调用的正确姿势

每天学习一点Python——函数调用的正确姿势

  • 2026-01-30 02:50:13
每天学习一点Python——函数调用的正确姿势

每天学习一点Python——函数调用的正确姿势

大家好!今天我们来聊聊Python中的函数调用。并顺便扩展一下异常处理的操作。

一、函数名和函数调用的区别

我们先来看第一段代码:

# 函数在Python中是值,可以赋值给变量
print
("原始len函数:", len)
print
("len的类型:", type(len))

代码解释:

  • • print("原始len函数:", len):这一行中有两个参数。第一个是字符串"原始len函数:",它会原样显示;第二个是len,注意这里没有括号,表示打印的是len这个函数本身,而不是调用它。
  • • print("len的类型:", type(len))type()是一个内置函数,用来查看对象的类型。这里我们查看len这个函数的类型。

执行结果:

原始len函数: <built-in function len>
len的类型: <class 'builtin_function_or_method'>

看到结果了吗?当我们只写函数名而不加括号时,Python告诉我们这是一个"built-in function"(内置函数)。这就像告诉你"这是一个工具",而不是"使用这个工具"。


对比学习:函数名 vs 函数调用

写法
含义
类比
len
函数本身
一把锤子放在桌上
len()
调用函数
用锤子敲钉子
len("hello")
带参数调用函数
用锤子敲特定的钉子

二、重新赋值函数名会发生什么?

接下来这段代码很有意思:

# 可以将函数名重新赋值为其他值
len
 = "I'm not the len you're looking for."
print
("\n重新赋值后的len:", len)
print
("现在len的类型:", type(len))

代码解释:

  • • len = "I'm not ...":这行代码把变量名len重新赋值为一个字符串。是的,Python允许这样做!
  • • 第一个print中的\n表示换行,让输出更清晰。

执行结果:

重新赋值后的len: I'm not the len you're looking for.
现在len的类型: <class 'str'>

看到变化了吗?len从内置函数变成了一个字符串!这是因为在Python中,函数名其实就是变量名,它保存着对函数的引用。我们可以改变这个引用,让它指向其他东西。


小Tip:别随便重命名内置函数

虽然Python允许重命名内置函数,但在实际编程中千万不要这样做!否则当你真的需要使用len()函数时,会发现它"消失"了。


三、如何恢复被覆盖的内置函数?

如果不小心覆盖了内置函数怎么办?看这里:

# 使用del删除绑定
del
 len
print
("\n使用del后,len恢复为内置函数:", len)

代码解释:

  • • del len:删除名为len的变量绑定
  • • 删除后,Python会找回内置的len函数

执行结果:

使用del后,len恢复为内置函数: <built-in function len>

看到了吗?内置函数又回来了!del语句就像"橡皮擦",可以把我们之前错误的赋值擦掉。


四、函数必须被调用才会执行

这是很多初学者最容易犯错误的地方:

# 函数必须被调用才会执行
print
("只写函数名不会执行:", len)

# 正确调用函数需要括号和参数

try
:
    len
()  # 这会报错,因为len需要参数
except
 TypeError as e:
    print
(f"错误: {e}")

# 正确调用方式

result = len("four")
print
(f'len("four")的结果: {result}')

代码解释:

  1. 1. print("只写函数名不会执行:", len):再次强调,只写len不会调用函数
  2. 2. try: 和 except::这是异常处理结构。如果len()出错,程序不会崩溃,而是执行except中的代码
  3. 3. len():这是错误的调用方式,因为len函数需要一个参数
  4. 4. len("four"):这是正确的调用方式,给len函数传递字符串"four"

执行结果:

只写函数名不会执行: <built-in function len>
错误: len() takes exactly one argument (0 given)
len("four")的结果: 4

小Tip:记住函数的使用方法

每个函数都有自己的使用方法:

  • • 有的函数需要传参数才能工作,比如len()
  • • 有的函数可以不传参数,比如print()

异常处理结构详解:

1. try: 代码块

  • • 作用:包含可能会引发异常的代码
  • • 原则:只放可能出错的代码,不要放无关代码
  • • 执行顺序:Python会依次执行这里的代码

2. except TypeError as e: 代码块

  • • 作用:捕获并处理特定类型的异常
  • • TypeError:指定要捕获的异常类型
  • • as e:将异常对象赋值给变量e,方便获取错误信息

为什么需要异常处理?

场景对比:

没有异常处理(程序崩溃):

def divide_numbers(a, b):
    return
 a / b

result = divide_numbers(10, 0)  # ZeroDivisionError
print
("程序继续执行")  # 永远不会执行到这里

有异常处理(程序继续运行):

def divide_numbers(a, b):
    try
:
        return
 a / b
    except
 ZeroDivisionError as e:
        print
(f"错误:{e}")
        return
 None

result = divide_numbers(10, 0)  # 输出:错误:division by zero
print
("程序继续执行")  # 正常执行

实际应用场景

1. 文件操作

try:
    with
 open("data.txt", "r") as file:
        content = file.read()
except
 FileNotFoundError:
    print
("文件不存在,使用默认值")
    content = "默认内容"
except
 PermissionError:
    print
("没有文件访问权限")

有无异常处理的区别

场景1:文件确实不存在

执行路径:
1. try: 尝试打开"data.txt" → 失败!抛出FileNotFoundError
2. 跳到except FileNotFoundError: → 执行这里的代码
3. 打印"文件不存在,使用默认值"
4. content = "默认内容"
5. 程序继续正常执行后面的代码

场景2:文件存在但没权限

执行路径:
1. try: 尝试打开"data.txt" → 失败!抛出PermissionError
2. 跳到except PermissionError: → 执行这里的代码
3. 打印"没有文件访问权限"
4. 程序继续执行(虽然content没有赋值,但至少没崩溃)

场景3:文件存在且有权限

执行路径:
1. try: 尝试打开"data.txt" → 成功!
2. content = file.read() → 读取内容
3. 跳过所有except块
4. 程序继续执行,content有实际的文件内容

关键意义:程序不会崩溃!

对比两种情况的程序行为:

没有try-except的情况:

# 硬编码方式
content = open("data.txt", "r").read()

# 如果文件不存在,则会直接报下面的错误:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    content = open("data.txt", "r").read()
FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'

# 程序到此完全停止!后面的所有代码都不执行了

print
("程序继续执行")  # 永远不会执行到这里

有try-except的情况:

try:
    content = open("data.txt", "r").read()
except
 FileNotFoundError:
    print
("文件不存在,使用默认值")
    content = "默认内容"

print
("程序继续执行")  # 一定会执行到这里,无论文件是否存在

五、print函数的神奇之处

接下来这个例子会让你对函数有新的理解:

# print()函数会打印你让它打印的内容,但是它的返回值是None
return_value = print("What do I return?")
print
(f"print()的返回值: {return_value}")
print
(f"返回值的类型: {type(return_value)}")

# 直接打印None

print
("None的值:", None)

代码解释:

  • • return_value = print("What do I return?"):调用print函数,并将其返回值赋给变量return_value
  • • print(f"print()的返回值: {return_value}"):查看print函数的返回值
  • • type(return_value):查看返回值的类型

执行结果:

What do I return?
print()的返回值: None
返回值的类型: <class 'NoneType'>
None的值: None

对比学习:两种不同的函数

函数类型
主要目的
返回值
例子
计算型函数
计算结果
有用的值
len()
sum()
执行型函数
执行操作
None
print()
sort()

重要概念解释:

  • • None:Python中的特殊值,表示"什么都没有"或"空值"
  • • print()函数的主要任务是在屏幕上打印你想打印的内容,而无需返回计算结果
  • • 所有函数都有返回值,如果没有明确用return语句返回,就自动返回None

小Tip:print()不能链式调用

# 错误:print()返回None,不能继续调用.upper()
result = print("Hello").upper()  # 报错!

# 正确:字符串方法可以链式调用

text = "hello"
result = text.upper().replace("H", "J")  # 正常

六、自定义函数的完整结构

现在我们来看如何创建自己的函数:

# 定义乘法函数
def
 multiply(x, y):
    """返回两个数的乘积"""

    product = x * y
    return
 product

# 调用函数

result = multiply(2, 4)
print
(f"multiply(2, 4) = {result}")

# 查看函数文档

help
(multiply)

代码解释:

  1. 1. def multiply(x, y)::定义函数。def是"定义"的意思,multiply是函数名,xy是参数
  2. 2. """返回两个数的乘积""":这是文档字符串(Docstring),说明函数的功能
  3. 3. product = x * y:函数体,执行计算
  4. 4. return product:返回计算结果
  5. 5. help(multiply):查看函数的帮助信息

执行结果:

multiply(2, 4) = 8
Help on function multiply in module __main__:

multiply(x, y)
    返回两个数的乘积

什么是文档字符串?

文档字符串是放在函数、类或模块开头的一段文本,用于说明代码的功能、参数和返回值。它的作用:

1. 可执行代码 - Python会读取它

def add(a, b):
    """返回两个数的和"""

    return
 a + b

# 可以通过 __doc__ 属性访问

print
(add.__doc__)  # 输出: 返回两个数的和

# 也可以通过help()函数查看

help
(add)  # 输出: 返回两个数的和

可以看到,用三个双引号把对函数的说明包起来并放到函数的开头,可以对你的函数进行解释说明。

文档字符串的格式规范

基本格式:

def 函数名(参数):
    """
    一句话简要描述函数功能

    详细描述(可选):
    可以写多行,详细说明函数的作用、算法等

    参数:
    参数1: 描述
    参数2: 描述

    返回:
    返回值的描述

    异常:
    可能抛出的异常(可选)

    示例:
    使用示例(可选)
    """

文档字符串 vs 多行字符串

它们看起来相似,但用途完全不同:

1. 文档字符串 (Docstring)

def greet(name):
    """
    向指定的人问好

    参数:
    name: 要问候的人名
    """

    print
(f"Hello, {name}!")
  • • 位置:必须是函数/类/模块的第一行
  • • 用途:说明代码功能,可以被Python读取(help(greet)
  • • Python会处理它:存为__doc__属性

2. 多行字符串

message = """这是一个
多行字符串
可以包含换行"""

print
(message)
输出:
这是一个
多行字符串
可以包含换行
  • • 位置:任何地方
  • • 用途:存储包含换行的文本
  • • Python会处理它:当作普通字符串

小Tip:一定要写文档字符串

文档字符串就像函数的"说明书"。想象一下,6个月后你再回来看自己写的代码,没有说明书还能记得每个函数是做什么的吗?


七、没有return语句的函数

有些函数没有return语句,它们会返回什么呢?

# 函数的不同部分
def
 greet(name):
    """
    向指定的人问好

    参数:
    name: 要问候的人名

    返回:
    None (此函数有副作用)
    """

    print
(f"Hello, {name}!")

# 调用函数

greet("Alice")

# 即使没有return语句,函数也返回None

result = greet("Bob")
print
(f"greet函数的返回值: {result}")

代码解释:

  • • def greet(name)::定义一个问候函数
  • • 三引号内的多行文本是详细的文档字符串
  • • print(f"Hello, {name}!"):使用f-string格式化字符串
  • • result = greet("Bob"):调用函数并保存返回值

执行结果:

Hello, Alice!
Hello, Bob!
greet函数的返回值: None

重要规则:所有函数都有返回值

规则:如果函数没有明确的return语句,Python会自动返回None


八、一个常见的错误

最后我们来看一个初学者常犯的错误:

# 这段代码会报错,因为multiply在定义前就被调用了
# 用三引号包裹,使其不执行

"""
# 错误示例
num = multiply(2, 4)  # NameError: name 'multiply' is not defined
print(num)

def multiply(x, y):
    return x * y
"""


# 正确写法

def
 multiply(x, y):
    return
 x * y

num = multiply(2, 4)
print
(f"正确顺序调用: multiply(2, 4) = {num}")

代码解释:

  1. 1. 错误示例中,在定义multiply函数之前就调用了它
  2. 2. 正确写法是先定义函数,再调用函数

执行结果:

正确顺序调用: multiply(2, 4) = 8

小Tip:函数的"定义"和"调用"顺序

记住这个简单的规则:先定义,后调用。就像你要使用一个工具,必须先制造或购买这个工具一样。

总结

今天我们学习了Python函数调用的重要知识点:

  1. 1. 函数名 vs 函数调用:不加括号是"函数本身",加括号是"使用函数"
  2. 2. 函数名可以重赋值:但要避免覆盖内置函数
  3. 3. 异常处理:使用try-except让程序更健壮
  4. 4. 函数的返回值:有的函数返回计算结果,有的函数返回None
  5. 5. 文档字符串:三个双引号的正确用法
  6. 6. 函数的定义:使用def关键字,可以写文档字符串来对自己定义的函数进行解释说明
  7. 7. 调用顺序:必须先定义函数,才能调用函数

记住这些要点,你就能更好地理解和使用Python函数了!


📦 资源获取提示

关注「码农自习室」,后台回复关键词 Python学习,即可获取本文完整代码及配套练习数据集,一起动手掌握高效数据操作的核心技巧!


❤️ 支持我们

如果觉得本文对你有帮助,欢迎点赞 + 关注,您的支持是我们持续创作优质内容的最大动力!


📚 学习资源说明

本文内容是基于《Python Basics: A Practical Introduction to Python 3》(Real Python)一书的学习笔记整理。
这本书是一本非常优秀的Python入门教材,推荐给所有想要系统学习Python的朋友们。

这本书的特点:

  • • ✅ 完全面向编程新手
  • • ✅ 每个概念都有代码示例
  • • ✅ 包含大量练习题
  • • ✅ 由经验丰富的Python开发者编写

跟着这本书学习,配合我的笔记整理,相信你能更快掌握Python编程!

让我们一起坚持学习,每天进步一点点!💪

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-07 23:43:21 HTTP/2.0 GET : https://f.mffb.com.cn/a/467999.html
  2. 运行时间 : 0.126301s [ 吞吐率:7.92req/s ] 内存消耗:4,438.91kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7797326fbdf7e8fb950fc1e71fb1c20f
  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.000634s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000982s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000348s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000248s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000587s ]
  6. SELECT * FROM `set` [ RunTime:0.000224s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000632s ]
  8. SELECT * FROM `article` WHERE `id` = 467999 LIMIT 1 [ RunTime:0.011568s ]
  9. UPDATE `article` SET `lasttime` = 1770479001 WHERE `id` = 467999 [ RunTime:0.004031s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000255s ]
  11. SELECT * FROM `article` WHERE `id` < 467999 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000411s ]
  12. SELECT * FROM `article` WHERE `id` > 467999 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000395s ]
  13. SELECT * FROM `article` WHERE `id` < 467999 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001413s ]
  14. SELECT * FROM `article` WHERE `id` < 467999 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.035929s ]
  15. SELECT * FROM `article` WHERE `id` < 467999 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000840s ]
0.127908s