首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件测试笔记|Python编程基础|Python函数语法

“动动小手,点点关注呗~”

最主要的是您不要对自己撒谎,那些对自己撒谎并且相信了自己编造谎言的人,往往不会有好下场,一定会落到是非不分的地步,他们无法辨别周围世界的真理,最终既不尊重自己,也不会尊重别人,而因为他不尊重其他任何人,他就不会再有爱。——《卡拉马佐夫兄弟》

一、引言

Python作为一种高级编程语言,凭借其简洁、易读的语法以及强大的功能,在数据科学、人工智能、Web开发等众多领域得到了广泛应用。而函数作为Python编程的核心概念之一,是构建复杂程序的基石。无论是简单的数据处理,还是大型项目的开发,函数都发挥着至关重要的作用。本文将深入探讨Python函数语法,带你从基础到进阶,全面掌握函数的使用技巧。

二、函数定义与基本结构

在Python中,使用def关键字来定义函数。基本语法结构如下:

• 函数名:遵循Python命名规则,用于标识函数,应具有描述性,方便理解函数的用途。

• 参数列表:位于函数名后的括号内,参数之间用逗号分隔。参数可以是输入数据,也可以有默认值。如果函数不需要参数,括号也不能省略。

• 文档字符串:用三引号括起来,用于解释函数的功能、参数含义、返回值等信息,这对于代码的可读性和维护性非常重要。虽然不是必须的,但强烈建议添加。

• 函数体:由一系列Python语句组成,是实现函数功能的核心部分。

• 返回值:使用return语句返回函数执行结果。如果函数没有return语句,或者return后没有值,将默认返回None。

三、参数传递

(一)位置参数

位置参数是最常见的参数类型,调用函数时,实参按照顺序依次传递给形参。例如:

(二)关键字参数

使用关键字参数调用函数时,通过参数名指定参数值,而不依赖参数顺序。例如:

(三)默认参数

在定义函数时,可以为参数设置默认值。当调用函数时,如果没有传递该参数,则使用默认值。例如:

(四)可变参数

1. 可变位置参数(*args):在参数名前加一个星号*,可以接受任意数量的位置参数,这些参数会被收集到一个元组中。例如:

2. **可变关键字参数(kwargs):在参数名前加两个星号**,可以接受任意数量的关键字参数,这些参数会被收集到一个字典中。例如:

四、匿名函数(lambda函数)

匿名函数是一种没有函数名的小型函数,使用lambda关键字定义,语法结构为:lambda arguments: expression。例如:

lambda函数通常用于需要一个简单函数作为参数的场景,如map()、filter()等内置函数。例如:

五、函数作用域

在Python中,函数内部定义的变量具有局部作用域,函数外部定义的变量具有全局作用域。例如:

如果在函数内部想要修改全局变量,可以使用global关键字声明。例如:

六、递归函数

递归函数是指在函数内部调用自身的函数。递归函数需要有一个终止条件,否则会导致无限递归。例如,计算阶乘的递归函数:

七、装饰器

装饰器是Python中一种强大的语法糖,用于修改函数的行为,而不修改函数的源代码。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。例如,一个简单的日志装饰器:

在上述代码中,log_function_call是装饰器函数,add函数被@log_function_call装饰后,调用add函数时会自动打印日志信息。

• log_function_call 是一个装饰器函数,它接受一个函数 func 作为参数。

◦ 在 log_function_call 内部定义了另一个函数 wrapper,wrapper 函数使用 *args 和 **kwargs 作为参数,这意味着它可以接受任意数量的位置参数和关键字参数。

◦ print(f"Calling function {func.__name__}") 语句在调用被装饰的函数之前打印一条消息,显示正在调用的函数的名称。

◦ result = func(*args, **kwargs) 调用原始的函数 func,并将其返回值存储在 result 变量中。

◦ print(f"Function {func.__name__} returned {result}") 语句在函数调用结束后打印一条消息,显示函数的返回值。

◦ 最后,wrapper 函数返回 result,也就是被装饰函数的返回值。log_function_call 函数返回 wrapper 函数对象。

• @log_function_call 是 Python 中使用装饰器的语法糖,它等价于 add = log_function_call(add)。这意味着 add 函数被 log_function_call 装饰器装饰。

◦ add 函数是一个简单的函数,它接受两个参数 a 和 b,并返回它们的和。

• 当调用 add(3, 5) 时,由于 add 函数被 log_function_call 装饰,实际上调用的是 wrapper 函数。

◦ wrapper 函数会先打印调用信息,然后调用 add 函数,再打印返回值信息,最后返回 add 函数的计算结果。

因此,这段代码的作用是使用装饰器记录函数的调用和返回值信息,并在调用 add 函数时打印相关的日志信息。运行这段代码后,会输出以下内容:

八、总结

Python函数语法丰富而灵活,掌握好函数的定义、参数传递、作用域、递归、匿名函数以及装饰器等知识,对于编写高效、可维护的Python代码至关重要。通过不断实践和深入理解,你将能够熟练运用函数解决各种编程问题,在Python编程的道路上迈出坚实的步伐。希望本文能成为你学习Python函数的得力助手,助你在编程领域不断进步。

“动动小手,点点关注呗~”🫰

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_E9Fb4XYCHUMag63NRS__Vw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券