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小小理解,希望对你学习也有帮助相关推荐

  1. python介绍和用途-python匿名函数的介绍及用途

    匿名函数 用lambda能够创建一个匿名函数,这种函数得名于省略了用def声明函数的标准步骤. 语法 lambda [arg1 [,arg2,.....argn]]:expression 如何使用 我 ...

  2. python匿名函数的作用_Python匿名函数 Lambda表达式作用

    在Python这门优美的编程语言中,支持一种有趣的语法格式(表达式),可以让我们在单行内创建一个最小的函数-python lambda匿名函数. 据说是借鉴了Lisp语言中lambda表达式,它可以使 ...

  3. 技术图文:Python 匿名函数 VS. C# Lambda表达式

    背景 前段时间在知识星球上立了一个Flag,至少写10篇关于 Python,Matlab 和 C# 对比的总结. 这是第 2 篇,从定义和应用两个角度来对比 Python 的匿名函数 与 C# 的La ...

  4. Python 匿名函数 lambda - Python零基础入门教程

    目录 一.Python 匿名函数 lambda 语法 二.Python 匿名函数 lambda 调用 1.lambda 匿名函数常规使用 2. lambda 匿名函数使用不定长参数 3. lambda ...

  5. python匿名函数的使用介绍

    python匿名函数的使用介绍 1.代码 func=lambda x,y:x*y print(func(3,8)) 2.运行截图 3.优点总结 [1]与其他函数配合使用 [2]减少代码量 [3]使得代 ...

  6. python匿名函数_Python匿名函数

    python匿名函数 Welcome to Python anonymous function tutorial. In the previous tutorial we learned about ...

  7. python匿名函数Lambda的两种用法

    python匿名函数Lambda的两种用法 第一种方式:作为函数对象单独使用 第二种方式:放在另一函数里使用 一般来说匿名函数Lambda的使用就是为了避免单独def一个函数,而且不用给函数命名,但是 ...

  8. Python匿名函数lambda的使用

    Python匿名函数lambda的使用 一.匿名函数介绍 在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数. lambda函数能接收任何数量(可以是0个 ...

  9. python匿名函数里用if_python匿名函数用法实例分析

    本文实例讲述了python匿名函数用法.分享给大家供大家参考,具体如下: 匿名函数特点: 1.只能有一个表达式 2.不用return,默认return结果 3.不需要名字,防止函数名重复 4.是对象, ...

最新文章

  1. Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序
  2. 计算机科学与技术专业术语
  3. P2617 Dynamic Rankings(带修主席树)
  4. 牛客网【每日一题】7月21日题目精讲—区间权值
  5. html5之MIME类型
  6. mysqldump: Got errno 28 on write
  7. PHP学习笔记 第六讲 PHP数组的创建修改应用
  8. JavaScript设计模式之装饰者模式
  9. 4939-大整数排序 ZCMU
  10. 2017 Multi-University Training Contest 3 solutions BY 洪华敦
  11. 程序员转行,干什么比较好
  12. 如何使丑陋的Arial看起来好看
  13. 7.9.9路由Routers
  14. 2018.07.18【2018提高组】模拟C组
  15. 深入理解模拟退火算法(Simulated Annealing)
  16. Retrace AV推出新型涂料添加剂,可在30分钟内灭杀新冠病毒
  17. 十六进制转换成八进制
  18. 解决超级账本测试网络配置中 Cannot run peer because error when setting up MSP of type bccsp from directory 的问题
  19. 基于uniapp+vue+微信小程序+安卓app电影院订票小程序H5网站设计
  20. vl53L0X传感器的编写,(未完待续)

热门文章

  1. jquery终止函数
  2. 一个苦逼测试员的七夕感想
  3. 转:一个PHP实现的ID生成器
  4. MySQL主从失败 错误Got fatal error 1236解决方法
  5. Fedora19 搭建LAMP环境
  6. 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用
  7. Javascript自由拖拽类
  8. IPSec逻辑体系架构
  9. eclipse工作空间在哪里配置?
  10. jquery ajax设置头部,jQuery Ajax 设置请求头