如何在 Python 中利用 def 关键字封装可重复调用的自定义功能函数
Python中def关键字用于定义函数,将逻辑封装为可重复调用的模块。基本语法包括函数名、参数和函数体,通过return返回值。参数设计支持位置参数、默认参数及*args、**kwargs,以提升灵活性。函数应遵循单一职责原则,返回结果而非直接输出,便于组合使用。函数内变量默认为局部作用域,修改全局变量需用global声明。
如何在 Python 中利用 def 关键字封装可重复调用的自定义功能函数

在 Python 的世界里,def 这个关键字,可以说是将一段逻辑打包成可重复调用功能的最基础、也最核心的工具。它的精髓在于三个步骤:明确输入、封装处理过程、然后给出结果。这么做的好处显而易见——代码变得更清晰,更容易维护,更重要的是,避免了大量重复劳动。
基本语法与最小可运行结构
定义一个函数,总是从 def 开始。后面跟着你给函数起的名字,一对圆括号(里面可以放参数,也可以不放),再加一个冒号。接下来,所有缩进的代码就构成了函数体。这里有个关键点:一个函数至少得有一个 return,不管是显式写出来还是 Python 默认的。
- 比如
def greet():,这是一个最简单的无参数函数,调用时直接写greet()就行。 - 再比如
def add(a, b): return a + b,这里定义了两个位置参数,调用的时候就得像add(3, 5)这样传值。 - 如果函数体里压根没写
return语句,别担心,Python 会默默地帮你返回一个None。
带参数设计:提升复用灵活性
想让一个函数能应对不同场景,关键在于参数。通过参数接收外部数据,函数的灵活性就大大提升了。常见的参数形式有这么几种:
- 位置参数:这是最直接的方式。调用时,传入值的顺序必须和定义时一致。例如
def power(base, exp): return base ** exp。 - 默认参数:给参数一个初始值,调用时如果省略,就用这个默认值。像
def say(text, times=1): print(text * times),你可以只写say("Hi")打印一次,也可以写say("Hi", 3)打印三次。 - *args 和 **kwargs:这两个是处理不定数量参数的利器。
*args用来接收任意多个位置参数,**kwargs则用来接收任意多个关键字参数。它们特别适合用来写一些通用的工具函数,比如日志包装器或者参数转发。
返回值与函数职责分离
一个好的函数,最好只专注做好一件事。这件事做完之后,通过 return 语句把结果明确地“交出来”,而不是依赖修改全局变量或者直接打印。这样,函数的计算结果才能被灵活地用在其他地方。
立即学习“Python免费学习笔记(深入)”;
- 推荐的做法:像
def is_even(n): return n % 2 == 0这样。调用后得到的是True或False,这个布尔值可以立刻用于条件判断,或者和其他逻辑组合。 - 不推荐的做法:像
def is_even(n): print("Yes" if n%2==0 else "No")。这样函数的功能就被固化了,它除了打印,干不了别的,无法嵌入到更复杂的逻辑流中。 - 另外,函数其实可以返回多个值(本质上是一个元组,利用解包语法赋值)。例如
def min_max(lst): return min(lst), max(lst),调用时可以这样写:lo, hi = min_max([4,1,9])。
函数内使用局部变量与作用域注意点
在函数内部定义的变量,默认都是局部变量。它们的生命周期仅限于函数执行期间,一旦函数退出,这些变量就被销毁了,完全不会影响到外部可能存在的同名变量。
- 如果确实需要在函数内部修改一个全局变量(比如一个计数器),那就得用
global关键字显式声明。对于嵌套函数,修改外层非全局变量则需要nonlocal。不过话说回来,这两种情况都应该谨慎使用,大多数时候,通过参数传递和返回值来沟通数据是更清晰、更安全的选择。 - 在 Python 中,函数本身也是“一等公民”,是对象。这意味着你可以把函数赋值给一个变量,也可以把函数作为参数传给另一个函数(比如
sorted(data, key=my_func)里的key参数)。这正是函数式编程思想的基础。 - 最后提一个好习惯:在函数体的开头,用三引号
"""..."""写一段文档字符串。这段描述能被help()函数和大多数 IDE 识别,对于理解函数用途非常有帮助。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













