对Python匿名函数和@property小小理解,希望对你学习也有帮助
1.匿名函数
不想显式定义函数的时候,可以使用匿名函数。
def f(x):return x*x#将匿名函数赋值给一个变量
result = lambda x:x*xprint(result(5))
print(f(5))
输出:
25
25
通过输出可以看出, lambda x:x*x
实际上就是:
def f(x):return x*x
lambda关键字表示一个匿名函数,通过上面的对比可以看出冒号前面的x就是函数的参数,后面的表达式就是该匿名函数的返回值。
匿名函数只有一个表达式,不需要写return,因为表达式的结果就是该匿名函数的返回值。
例1:
def divisible(n):return n % 2 == 0#这里解释下filter(function, iterable)函数,第一个参数为函数,第二个为序列#序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。the_list =list( filter(divisible,range(20)))
使用匿名函数重写上面的代码:下面这个和上面的是一样的
the_list = list(filter(lambda n: n % 2 == 0,range(20)))
例2:
匿名函数也可以定义多个参数
def f(x,y):return x+yl = lambda x,y: x + yprint(f(1,3))
print(l(1,3))
输出
4
4
2.@property
例如:现在有一个可以存储人类年龄的类
class people():def __init__(self,age=1):self.age = age#通过下面p = people() p.age = 100,我们可以设置人的年龄p = people()
p.age = 100
print(p.age)
输出
100
现在有一个新需求,要求年龄只能输入大于0的整数。有一个解决方式就是隐藏属性,我们可以定义getter和setter接口来操作属性
class people():def __init__(self,age=1):self.set_age(age)#返回年龄def get_age(self):return self._age#设置年龄def set_age(self,value):if value <= 0 or not isinstance(value,int) :raise ValueError('请输入大于0的整数')self._age = valuep = people(20)
print(p.get_age())
p.set_age(25)
print(p.get_age())
输出:
20
25
上面的代码可以实现需求,但是有一种更简单的方式就是使用@property,使用@property的实现代码
class people():def __init__(self,age=1):self._age = age#在返回属性的方法上,使用@property修饰符@propertydef age(self):return self._age#在设置属性的方法中使用 属性.setter 修饰符@age.setterdef age(self,value):if value <= 0 or not isinstance(value,int) :raise ValueError('请输入大于0的整数')self._age = valuep = people()p.age = 20 #和之前的 p.set_age(20) 是一样的
print(p.age) #获取属性的值,和之前 p.get_age()的效果是一样的
输出
20
学会了吗?不会关系,小编创建了一个Python学习交流QQ群:531509025,群里有大量基础入门知识,都是从零开始的,群里还有专业的人给你解答问题。寻找有志同道合的小伙伴,互帮互助,群里还有不错PDF电子书!
对Python匿名函数和@property小小理解,希望对你学习也有帮助相关推荐
- python介绍和用途-python匿名函数的介绍及用途
匿名函数 用lambda能够创建一个匿名函数,这种函数得名于省略了用def声明函数的标准步骤. 语法 lambda [arg1 [,arg2,.....argn]]:expression 如何使用 我 ...
- python匿名函数的作用_Python匿名函数 Lambda表达式作用
在Python这门优美的编程语言中,支持一种有趣的语法格式(表达式),可以让我们在单行内创建一个最小的函数-python lambda匿名函数. 据说是借鉴了Lisp语言中lambda表达式,它可以使 ...
- 技术图文:Python 匿名函数 VS. C# Lambda表达式
背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 2 篇,从定义和应用两个角度来对比 Python 的匿名函数 与 C# 的La ...
- Python 匿名函数 lambda - Python零基础入门教程
目录 一.Python 匿名函数 lambda 语法 二.Python 匿名函数 lambda 调用 1.lambda 匿名函数常规使用 2. lambda 匿名函数使用不定长参数 3. lambda ...
- python匿名函数的使用介绍
python匿名函数的使用介绍 1.代码 func=lambda x,y:x*y print(func(3,8)) 2.运行截图 3.优点总结 [1]与其他函数配合使用 [2]减少代码量 [3]使得代 ...
- python匿名函数_Python匿名函数
python匿名函数 Welcome to Python anonymous function tutorial. In the previous tutorial we learned about ...
- python匿名函数Lambda的两种用法
python匿名函数Lambda的两种用法 第一种方式:作为函数对象单独使用 第二种方式:放在另一函数里使用 一般来说匿名函数Lambda的使用就是为了避免单独def一个函数,而且不用给函数命名,但是 ...
- Python匿名函数lambda的使用
Python匿名函数lambda的使用 一.匿名函数介绍 在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数. lambda函数能接收任何数量(可以是0个 ...
- python匿名函数里用if_python匿名函数用法实例分析
本文实例讲述了python匿名函数用法.分享给大家供大家参考,具体如下: 匿名函数特点: 1.只能有一个表达式 2.不用return,默认return结果 3.不需要名字,防止函数名重复 4.是对象, ...
最新文章
- Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序
- 计算机科学与技术专业术语
- P2617 Dynamic Rankings(带修主席树)
- 牛客网【每日一题】7月21日题目精讲—区间权值
- html5之MIME类型
- mysqldump: Got errno 28 on write
- PHP学习笔记 第六讲 PHP数组的创建修改应用
- JavaScript设计模式之装饰者模式
- 4939-大整数排序 ZCMU
- 2017 Multi-University Training Contest 3 solutions BY 洪华敦
- 程序员转行,干什么比较好
- 如何使丑陋的Arial看起来好看
- 7.9.9路由Routers
- 2018.07.18【2018提高组】模拟C组
- 深入理解模拟退火算法(Simulated Annealing)
- Retrace AV推出新型涂料添加剂,可在30分钟内灭杀新冠病毒
- 十六进制转换成八进制
- 解决超级账本测试网络配置中 Cannot run peer because error when setting up MSP of type bccsp from directory 的问题
- 基于uniapp+vue+微信小程序+安卓app电影院订票小程序H5网站设计
- vl53L0X传感器的编写,(未完待续)