🔥🔥Java开发者的Python快速进修指南:函数进阶
在上一篇文章中,我们讲解了函数最基础常见的用法,今天我想在这里简单地谈一下函数的其他用法。尽管这些用法可能不是非常常见,但我认为它们仍然值得介绍。因此,我将单独为它们开设一个章节,并探讨匿名函数和装饰器函数这两种特殊的用法。
匿名函数
在Python中,匿名函数也被称为lambda函数,它是一种没有名称的函数。但是与Java的lambda表达式相比,它们有一些区别。匿名函数通常用于在代码中定义简单的功能,并且可以在不需要额外定义函数的情况下使用。主要就是省事~~
匿名函数的语法如下:
lambda arguments: expression
其中,arguments是函数的参数,expression是函数的返回值。如果在expression中没有使用print这样的打印函数,通常情况下函数会返回expression的值,这意味着函数中包含了return语句。
# 写法一
print((lambda x, y: x + y)(2, 3))
# 写法二,但是这个赋值了一个函数名字,没啥意义了就
add = lambda x, y: x + y
print(add(2, 3))
在Java中,并没有直接对应的匿名函数的概念,但可以通过定义接口或使用Lambda表达式来实现类似的功能。
装饰器函数
在Python中,装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数。装饰器函数通常用于在不改变原函数代码的情况下,对函数进行扩展或修改。而在Java中,装饰器函数的概念可以通过使用注解来实现。通过在方法前添加特定的注解,可以实现对方法的装饰。
简单来说,装饰器是一种用于修改其他函数行为的函数。它们允许在不修改原始函数定义的情况下,对其进行扩展、修改或包装。
装饰器函数的语法如下:
def log_decorator(original_function):
def wrapper_function(*args, **kwargs):
print(f"Calling {original_function.__name__} function")
result = original_function(*args, **kwargs)
print(f"{original_function.__name__} function finished")
return result
return wrapper_function
@log_decorator
def add(x, y):
return x + y
print(add(2, 3))
#输出结果如下
#Calling add function
#add function finished
#5
这里我们定义了一个装饰器函数log_decorator,它在调用原始函数之前和之后打印了一些信息。通过在add函数上使用@log_decorator,我们将add函数传递给log_decorator函数进行装饰。当调用add函数时,实际上是调用了被装饰后的wrapper_function函数。
总结
在这篇文章中,我们介绍了函数的两种不常用的特殊用法:匿名函数和装饰器函数。匿名函数是一种没有名称的函数,通常用于定义简单的功能。我们可以使用lambda关键字来创建匿名函数,并在需要时直接调用它们。装饰器函数是一种特殊的函数,可以接受一个函数作为参数,并返回一个新的函数。装饰器函数通常用于在不改变原函数代码的情况下,对函数进行扩展或修改。通过使用装饰器,我们可以在函数调用前后执行额外的操作。这些特殊用法可以帮助我们更灵活地使用函数,并使代码更加简洁和可读。
🔥🔥Java开发者的Python快速进修指南:函数进阶的更多相关文章
- JAVA开发者的Golang快速指南
Golang作为Docker.Kubernetes和OpenShift等一些酷辣新技术的首选编程语言,越来越受欢迎.尤其它们都是开源的,很多情况下,开源是非常有价值的.深入学习阅Golang等源代码库 ...
- 针对Quant的Python快速入门指南
作者:用Python的交易员 (原创文章,转载请注明出处) 最近有越来越多的朋友在知乎或者QQ上问我如何学习入门Python,就目前需求来看,我需要写这么一篇指南. 针对整个vn.py框架的学习,整体 ...
- MessagePack Java 0.6.X 快速开始指南 - 安装
0.6.x 版本的 MessagePack 已经过期被淘汰了.如果你现在开始使用 MessagePack 话,请不要使用这个版本. 我们再这里保留 0.6.x 版本的内容主要用于参考用途. 最新的 M ...
- python学习日记(函数进阶)
命名空间 内置命名空间 存放了python解释器为我们提供的名字:print,input...等等,他们都是我们熟悉的,拿过来就可以用的方法. 内置的名字在启动解释器(程序运行前)的时候被加载在内存里 ...
- python 基础篇 11 函数进阶----装饰器
11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...
- python 基础篇 10 函数进阶
本节主要内容:1. 函数参数--动态传参2. 名称空间, 局部名称空间, 全局名称空间, 作⽤域, 加载顺序.3. 函数的嵌套4. gloabal, nonlocal关键字 ⼀. 函数参数--动态传参 ...
- Python初学者第二十二天 函数进阶(1)
22day 1.函数命名空间: 2.函数作用域的查找顺序:LEGB locals->enclosing function ->globals ->_builtins_ a.local ...
- python基础学习之函数进阶【匿名函数、作用域关系、闭包、递归】
匿名函数 lambda的用法: lambda x:x+1 解释,同等于以下函数 def test(x): return x+1 因为没有函数名,所以称为匿名函数 只适用于简易的逻辑,复杂逻辑无法实现 ...
- Python之路----生成器函数进阶
def generator(): print(123) yield 1 print(456) yield 2 g = generator() ret = g.__next__() print('*** ...
- 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南
我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...
随机推荐
- Django reset framework: 序列化
序列化与反序列化 将模型转换为json 称之为 序列化 将json转换为模型 称之为 反序列化 何时进行序列化与反序列化 序列化:当后端将数据库中信息取出返回给前端时,要进行序列化操作 反序列化:当需 ...
- 双URL编码绕过WAF
一般编码一次是%5c. 但攻击者怕这个会被认出来,所以用二次编码,把%本身编码成%25.再和后边拼成%255c. 如果URL解码器有缺陷,只不断重复"从前边开始解析"这个步骤,就会 ...
- Unity 编辑器选择器工具类Selection 常用函数和用法
Unity 编辑器选择器工具类Selection 常用函数和用法 点击封面跳转下载页面 简介 在Unity中,Selection类是一个非常有用的工具类,它提供了许多函数和属性,用于操作和管理编辑器中 ...
- C#系统锁屏事件例子 - 开源研究系列文章
今天有个网友问了个关于操作系统锁屏的问题. 我们知道,操作系统是基于消息和事件处理的,所以我们只要找到该操作系统锁屏和解屏的那个事件,然后在事件里进行处理即可.下面是例子介绍. 1. 项目目录: 下面 ...
- CVE-2022-42475-FortiGate-SSLVPN HeapOverflow 学习记录
前言 之前就想复现这个洞,不过因为环境的问题迟迟没有开工.巧在前一阵子有个师傅来找我讨论劫持 ssl结构体中函数指针时如何确定堆溢出的偏移,同时还他把搭建好了的环境发给了我,因此才有了此文. 如何劫持 ...
- [ABC128D] equeue
2023-01-14 题目 题目传送门 翻译 翻译 难度&重要性(1~10):4 题目来源 AtCoder 题目算法 暴力,贪心 解题思路 由题意可以得出,数据只有 \(n \leq 50,k ...
- 项目开展CICD的实践探路
本文介绍了作者对CICD的理解以及在项目中开展CICD的几种场景,总结了每种场景实践的关键节点.带来的收益,以及结合具体项目开展的实际应用.读者可以借鉴本文中描述的场景,或借鉴文中提到的实践方式,在项 ...
- 《Kali渗透基础》15. WEB 渗透
@ 目录 1:WEB 技术 1.1:WEB 攻击面 1.2:HTTP 协议基础 1.3:AJAX 1.4:WEB Service 2:扫描工具 2.1:HTTrack 2.2:Nikto 2.3:Sk ...
- CEMS大学生综合测评管理系统
功能介绍 登录 首页 修改密码 提交申请 提交列表 数据可视化 审核列表 前端 components结构 搭建Vue项目 Vue3快速上手: https://cn.vuejs.org/guid ...
- 【krpano】 ASP点赞插件
简述 这是一个Asp版krpano点赞案例,运用asp+xml读写.存储数据,结合krpano代码实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户在网页可点赞后显示已点赞数 ...