Python 在定义函数时,究竟定义的是什么?

学习 Python 函数时,经常会听到一句话:

Python 遇到函数时,只会定义,不会执行。

其实所谓的"定义函数",可以简单理解成:

给一套操作取一个名字,让 Python 先看并记录这些操作,但暂时不执行。

例如:

python 复制代码
def fun():
    print("Hello")
    print("Python")

这里相当于把:

python 复制代码
print("Hello")
print("Python")

这一套操作取名为:

text 复制代码
fun

当 Python 处理这个函数定义时,它会看并记录 fun 里面有哪些操作,并检查代码的基本语法是否正确。

可以简单理解为:

text 复制代码
fun 对应:
1. print("Hello")
2. print("Python")

但是此时只是看并记录,不会真正执行这些操作,所以不会输出任何内容。


为什么要看并记录这些操作?

因为以后调用:

python 复制代码
fun()

时,Python 必须知道:

fun 这个名字对应哪些操作,现在应该执行什么。

所以定义函数时先看并记录,调用函数时再真正执行。

当运行到:

python 复制代码
fun()

Python 就会找到之前记录的操作,并依次执行:

python 复制代码
print("Hello")
print("Python")

输出:

text 复制代码
Hello
Python

一句话理解

定义函数:给一套操作取一个名字,Python 先看并记录,但不执行。
调用函数:通过这个名字找到之前记录的操作,并真正执行。

相关推荐
小小张说故事3 小时前
Python 的 list append 为什么是均摊 O(1)?拆开过度分配那张表,看容量翻倍背后的暗账
python
benjiangliu3 小时前
恩培趣味计算机视觉-01-conda环境和Python库
开发语言·python·conda
ZhengEnCi3 小时前
用 YOLOv8n + 自研二分类模型做课堂行为识别:从 9000 张标注数据到 Flask 全栈落地
pytorch·python·计算机视觉
成为深度学习高手3 小时前
xLSTM-Mixer:用标量记忆同时混合时间与变量,把循环网络带回多元时序预测
人工智能·python·深度学习·数据挖掘·transformer
骑士雄师4 小时前
多轮对话流程梳理详细版本
python
进击的明明17 小时前
当AI开始“边想边干”:深入聊聊ReAct,以及如何用Python手搓一个简单Agent
python·面试·agent
全栈弄潮儿18 小时前
Python实战第8期:函数
后端·python·编程语言
卷无止境19 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
卷无止境1 天前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
滴啦嘟啦哒1 天前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身