全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数

news2024/12/25 9:18:38

合集 - Python面向对象编程(51)

1.可能是全网最适合入门的面向对象编程教程:Python实现-嵌入式爱好者必看!06-232.全网最适合入门的面向对象编程教程:00 面向对象设计方法导论06-243.全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念06-254.全网最适合入门的面向对象编程教程:02 类和对象的Python实现-使用Python创建类06-275.全网最适合入门的面向对象编程教程:03 类和对象的Python实现-为自定义类添加属性06-286.全网最适合入门的面向对象编程教程:04 类和对象的 Python 实现-为自定义类添加方法(PySerial 库接收串口数据)06-297.全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签(一个帮你提升coding效率的小技巧)06-308.全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装07-019.全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解-提高代码可读性的利器07-0310.全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器:把方法包装成属性07-0411.全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系,你知道多少?07-0512.全网最适合入门的面向对象编程教程:10 类和对象的 Python 实现-类的继承和里氏替换原则,Python 模拟主机和传感器自定义类07-0713.全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法-模拟串口传感器和主机07-0914.全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志07-1015.全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用07-1116.全网最适合入门的面向对象编程教程:14 类和对象的 Python 实现-类的静态方法和类方法,你分得清吗?07-1117.全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法07-1218.全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则07-1319.全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“07-1620.全网最适合入门的面向对象编程教程:18 类和对象的 Python 实现-多重继承与 PyQtGraph 串口数据绘制曲线图07-1721.全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 自动生成文件注释和函数注释07-1822.全网最适合入门的面向对象编程教程:20 类和对象的 Python 实现-组合关系的实现与 CSV 文件保存07-1923.全网最适合入门的面向对象编程教程:21 类和对象的 Python 实现-多文件的组织:模块 module 和包 package07-1924.全网最适合入门的面向对象编程教程:22 异常捕获-异常和语法错误07-2325.全网最适合入门的面向对象编程教程:23 异常捕获-抛出异常07-2426.全网最适合入门的面向对象编程教程:24 异常捕获-异常的捕获与处理:try/except 语句、文件读写示例、Exception 引用07-2527.全网最适合入门的面向对象编程教程:25 异常捕获-Python判断输入数据类型07-2828.全网最适合入门的面向对象编程教程:26 异常捕获-上下文管理器和 with 语句07-2929.全网最适合入门的面向对象编程教程:27 异常捕获-Python中异常层级与自定义异常类的实现07-3030.全网最适合入门的面向对象编程教程:28 异常捕获-Python编程原则、哲学和规范大汇总07-3031.全网最适合入门的面向对象编程教程:29 异常捕获-断言与防御性编程和help函数的使用07-3132.全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类08-0333.全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type08-0434.全网最适合入门的面向对象编程教程:32 Python 的内置数据类型-类 Class 和实例 Instance08-0535.全网最适合入门的面向对象编程教程:33 Python 的内置数据类型-对象 Object 和类型 Type 的关系08-0836.全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组08-0937.全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性08-1138.全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典08-1439.全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式08-2440.全网最适合入门的面向对象编程教程:38 Python常用复合数据类型-使用列表实现堆栈、队列和双端队列08-2541.全网最适合入门的面向对象编程教程:39 Python常用复合数据类型-集合08-2742.全网最适合入门的面向对象编程教程:40 Python常用复合数据类型-枚举和enum模块的使用08-2843.全网最适合入门的面向对象编程教程:41 Python 常用复合数据类型-队列(FIFO、LIFO、优先级队列、双端队列和环形队列)08-3044.全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型09-0145.全网最适合入门的面向对象编程教程:43 Python 常用复合数据类型-扩展内置数据类型09-0246.全网最适合入门的面向对象编程教程:44 Python内置函数与魔法方法-重写内置类型的魔法方法09-0347.全网最适合入门的面向对象编程教程:45 Python 实现常见数据结构-链表、树、哈希表、图和堆09-0548.全网最适合入门的面向对象编程教程:46 Python函数方法与接口-函数与事件驱动框架09-0949.全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback09-1250.全网最适合入门的面向对象编程教程:48 Python函数方法与接口-位置参数、默认参数、可变参数和关键字参数09-14

51.全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数09-15

收起

全网最适合入门的面向对象编程教程:49 Python 函数方法与接口-函数与方法的区别和 lamda 匿名函数

image

摘要:

在 Python 中,函数和方法都是代码的基本单元,用于封装和执行特定的任务;它们之间有一些重要的区别,而 lambda 匿名函数则是 Python 提供的一种简洁定义小型函数的方法。

原文链接:

FreakStudio的博客

往期推荐:

学嵌入式的你,还不会面向对象??!

全网最适合入门的面向对象编程教程:00 面向对象设计方法导论

全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念

全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类

全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自定义类添加属性

全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自定义类添加方法

全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签

全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装

全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解

全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器

全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系

全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则

全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法

全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志

全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用

全网最适合入门的面向对象编程教程:全网最适合入门的面向对象编程教程:14 类和对象的Python实现-类的静态方法和类方法

全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法

全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则

全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“

全网最适合入门的面向对象编程教程:18 类和对象的Python实现-多重继承与PyQtGraph串口数据绘制曲线图

全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 自动生成文件注释和函数注释

全网最适合入门的面向对象编程教程:20 类和对象的Python实现-组合关系的实现与CSV文件保存

全网最适合入门的面向对象编程教程:21 类和对象的Python实现-多文件的组织:模块module和包package

全网最适合入门的面向对象编程教程:22 类和对象的Python实现-异常和语法错误

全网最适合入门的面向对象编程教程:23 类和对象的Python实现-抛出异常

全网最适合入门的面向对象编程教程:24 类和对象的Python实现-异常的捕获与处理

全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据类型

全网最适合入门的面向对象编程教程:26 类和对象的Python实现-上下文管理器和with语句

全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现

全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规范大汇总

全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性编程和help函数的使用

全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类

全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type

全网最适合入门的面向对象编程教程:32 Python的内置数据类型-类Class和实例Instance

全网最适合入门的面向对象编程教程:33 Python的内置数据类型-对象Object和类型Type的关系

全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组

全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性

全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典

全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式

全网最适合入门的面向对象编程教程:38 Python常用复合数据类型-使用列表实现堆栈、队列和双端队列

全网最适合入门的面向对象编程教程:39 Python常用复合数据类型-集合

全网最适合入门的面向对象编程教程:40 Python常用复合数据类型-枚举和enum模块的使用

全网最适合入门的面向对象编程教程:41 Python常用复合数据类型-队列(FIFO、LIFO、优先级队列、双端队列和环形队列)

全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型

全网最适合入门的面向对象编程教程:43 Python常用复合数据类型-扩展内置数据类型

全网最适合入门的面向对象编程教程:44 Python内置函数与魔法方法-重写内置类型的魔法方法

全网最适合入门的面向对象编程教程:45 Python实现常见数据结构-链表、树、哈希表、图和堆

全网最适合入门的面向对象编程教程:46 Python函数方法与接口-函数与事件驱动框架

全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback

全网最适合入门的面向对象编程教程:48 Python函数方法与接口-位置参数、默认参数、可变参数和关键字参数

更多精彩内容可看:

给你的 Python 加加速:一文速通 Python 并行计算

一文搞懂 CM3 单片机调试原理

肝了半个月,嵌入式技术栈大汇总出炉

电子计算机类比赛的“武林秘籍”

一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库

Avnet ZUBoard 1CG开发板—深度学习新选择

SenseCraft 部署模型到Grove Vision AI V2图像处理模块

文档和代码获取:

可访问如下链接进行对文档下载:

GitHub - leezisheng/Doc: 此文件夹主要包括嵌入式开发规范和相关技术书籍、资料分享。

image

本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者理解。

相关示例代码获取链接如下:GitHub - leezisheng/Python-OOP-Demo: 一文速通Python面向对象编程-文档示例程序

正文

函数和方法

函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。 所有传递给函数的数据都是显式传递的。

image

方法和函数类似,同样封装了独立的功能,但是方法是只能依靠类或者对象来调用的,表示针对性的操作。方法中的数据 self 和 cls 是隐式传递的,即方法的调用者,同时,方法可以操作类内部的数据。简单的说,函数在 python 中独立存在,可直接使用的,而方法是必须被别人调用才能实现的。

image

简单来说,与类和实例无绑定关系的 function 都属于函数;与类和实例有绑定关系的 function 都属于方法。

实际上,类的方法并不一定必须在类内实现,也可以在类内先声明而不具体实现,在类外部实现并给属性赋值(实现具体方法)。示例代码如下:

 
_# 定义Cat类_
class Cat:
def say(self):
print("I' m a cat")
cat1 = Cat()
_# 定义lie方法_
lie = lambda self: print("I' m a dog")
_# 添加lie方法_
Cat.lie = lie
_# 查看Cat类属性_
print(dir(Cat))
cat1.lie()

如下为运行结果,可以看到已经成功给 Cat 类添加了 lie 方法。

image

lamda 函数/匿名函数

lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只能有一个表达式。匿名函数不需要使用 def 关键字定义完整函数。lambda 函数通常用于编写简单的、单行的函数,通常在需要函数作为参数传递的情况下使用,例如在 map()、filter()、reduce()等函数中。

lambda 语法格式:

 
lambda arguments: expression

lambda 表达式的参数:

  • lambda 是 Python 的关键字,用于定义 lambda 函数
  • arguments 是参数列表,可以包含零个或多个参数,但必须在冒号(:)前指定
  • expression 是一个表达式,用于计算并返回函数的结果

以下实例使用 lambda 创建匿名函数,函数参数 a 与 b 相乘,并返回结果:

 
x = lambda a, b : a * b
print(x(5, 6))

lambda 函数也可以与内置函数如 map()、filter()和 reduce()一起使用,以便在集合上执行操作。

例如与 map()函数配合实现一个列表的平方运算,map()函数的原型是 map(function,iterable,……),它的结果是返回一个列表,这个函数的意义是将 function 应用于 iterable 的每一个元素,结果以列表的形式返回。

 
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)

或者与 filter 函数配合,对列表中元素进行筛选。filter()函数能够从可迭代对象(如字典、列表)中筛选某些元素,并生成一个新的迭代器。filter(function, iterable)函数会返回一个可迭代的 filter 对象,可以使用 list()函数将其转化为列表,这个列表包含过滤器对象中返回的所有的项。在下面的例子中,我们将列表中的偶数项筛选了出来:

 
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)

或是与 reduce()函数进行运算,reduce()函数会对参数序列中元素进行累积。reduce(function, iterable[, initializer])将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

 
from functools import reduce
numbers = [1, 2, 3, 4, 5]
_# 使用 reduce() 和 lambda 函数计算乘积_
product = reduce(lambda x, y: x * y, numbers)
print(product)
https://blog.csdn.net/2301_78542842/article/details/141832468?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-1-141832468-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-1-141832468-null-null.nonecase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

make 程序规定的 makefile 文件的书写语法(5)

(40)接着学习自动变量,就是 make 程序执行时,自动定义和产生的变量,来描述 makefile 文件,可以直接拿来用: 补充 D 与 F 的使用,前者只获得目录,后者只获得文件名&#x…

【C++算法】滑动窗口

长度最小的子数组 题目链接: 209. 长度最小的子数组 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 算法原理 代码步骤: 设置left0,right0设置sum0,len0遍历l…

深度学习-13-小语言模型之SmolLM的使用

文章附录 1 SmolLM概述1.1 SmolLM简介1.2 下载模型2 运行2.1 在CPU/GPU/多 GPU上运行模型2.2 使用torch.bfloat162.3 通过位和字节的量化版本3 应用示例4 问题及解决4.1 attention_mask和pad_token_id报错4.2 max_new_tokens=205 参考附录1 SmolLM概述 1.1 SmolLM简介 SmolLM…

六西格玛咨询:石油机械制造企业的成本控制与优化专家

一、石油机械制造行业现状及主要困扰 随着全球能源需求的日益增长,石油开采和生产设备需求不断增加,石油机械制造行业在过去数十年里得到了迅猛发展。然而,石油机械制造作为一个高度复杂且技术密集的行业,也面临着多重挑战。首先…

路由策略原理与配置

🐣个人主页 可惜已不在 🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 一. 原理概述 二. 实验目的 实验内容 实验拓扑 实验配置 三. 实验结果 一. 原理概述 路由策略Route-P…

STM32中的计时与延时

前言 在裸机开发中,延时作为一种规定循环周期的方式经常被使用,其中尤以HAL库官方提供的HAL_Delay为甚。刚入门的小白可能会觉得既然有官方提供的延时函数,而且精度也还挺好,为什么不用呢?实际上HAL_Delay中有不少坑,而这些也只是HAL库中无数坑的其中一些。想从坑里跳出来…

刻意练习:舒尔特方格提升专注力

1.功能描述 刻意练习:舒尔特方格提升专注力 如果发现自己存在不够专注的问题,可以通过一个小游戏来提升自己专注力--舒尔特方格。 舒尔特方格的实施步骤如下: 一张纸上画出5X5的空方格。在方格中,没有任何规律的随机填写数字1…

[数据集][目标检测]葡萄成熟度检测数据集VOC+YOLO格式1123张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1123 标注数量(xml文件个数):1123 标注数量(txt文件个数):1123 标注…

C++——多态的原理

多态的原理 多态的原理引入虚函数表 多态的原理 引入 如下代码的输出结果为() A.编译报错 B.运行报错 C.8 D.12 上⾯题⽬运⾏结果12bytes,除了_b和_ch成员,还多⼀个__vfptr放对象的前⾯(注意有些平台可能会放到对象的最后⾯&am…

【目标检测数据集】车辆分类数据集1880张7类VOC+YOLO(含摩托车、救护车、消防车、警车、警用摩托车、轿车、大车)

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1883 标注数量(xml文件个数):1883 标注数量(txt文件个数):1883 标注…

【C++知识扫盲】-----初识迭代器

1. 迭代器的基本概念 迭代器是一种抽象的指针类型,它使得你可以遍历容器中的元素而不需要知道容器的具体实现细节。迭代器可以用来访问容器中的元素、移动位置、比较位置等。 2. 迭代器的类型 输入迭代器(Input Iterator):只能…

大数据Flink(一百一十八):SQL水印操作(Watermark)

文章目录 ​​​​​​SQL水印操作(Watermark) 一、为什么要有WaterMark 二、​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 ​​​​​​SQL水印操作(Watermark) 一、​​​​​​​为什么要…

出处不详 阻拦投篮

目录 阻拦投篮题目描述背景输入输出数据范围 题解解法 打赏 阻拦投篮 题目描述 背景 现在你得到了一个可以阻拦投篮的宝物,它会在投球后把篮球传送回运动员手上,但是宝物的成功率和篮球在空中运动的时间有关,并且在特定的时间点成功的几率…

152-钓鱼篇邮件钓鱼Ewomail系统网页克隆劫持用户后门上线

承接上节课没讲完的邮件钓鱼和全部的网页钓鱼 #知识点: 1、红队技能-网络钓鱼-邮件系统 2、邮件钓鱼-平台-Gophish&Swaks 3、邮件钓鱼-系统-smtp2go&SendCloud 4、邮件钓鱼-自定义-Ewomail&Postfix 5、网页钓鱼-克隆修改-劫持口令&下载后门 这…

测试工具笔记

性能测试是软件测试中非常重要的一部分,它可以帮助识别软件在高负载条件下的性能瓶颈。市面上有许多性能测试工具,它们各有特点和优势。以下是一些流行的性能测试工具: 1. LoadRunner: 由Micro Focus提供,是一个业界广…

实战外网配置——光猫桥接+路由器PPPoE拨号+防火墙外网链路健康检查+外网流量负载均衡

一、适用场景: 1、企业规模较大时,1条公网带宽流量可能不足,需要用到多条公网出口时。 2、企业有业务需要静态ip映射,但是因静态ip专线价格较高,所以需要拨号光纤承载较多的下行流量。 3、当公网出口有多条链路&#…

[项目][WebServer][CGI机制 设计]详细讲解

目录 1.何为CGI机制?2.理解CGI机制3.CGI接口设计1.ProcessNonCgi2.ProcessCgi 1.何为CGI机制? CGI(Common Gateway Interface)是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和WEB服务器之间传递信息的过程 2.理解CGI机制 …

鸿蒙OS Service Ability

鸿蒙OS Service模板的Ability基本概念 基于 Service 模板的 Ability(以下简称“Service”)主要用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service 可由其他应用或 Ability 启动&#xff0…

WEB攻防-PHP特性缺陷对比函数CTF考点CMS审计实例

知识点: 1、过滤函数缺陷绕过; 2、CTF考点与代码审计; 1、赋值 不会对比类型 类型也会对比 2、MD5 在使用比较md5的时候,只要第一位是相等的数字,则会值相等 3、intval 3、 %0a代表换行 4、 6、 7、 代码审计

Amoco:一款针对二进制源码的安全分析工具

关于Amoco Amoco是一款功能强大的二进制源码静态分析工具,该工具基于Python 3.8开发,可以帮助广大研究人员轻松对二进制程序执行静态符号分析。 工具特性 1、一个通用的指令解码框架,旨在减少实现对新架构的支持所需的时间。例如&#xff0c…