欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

对Python匿名函数和@property小小理解,希望对你学习也有帮助

发布时间:2025/3/20 python 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 对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小小理解,希望对你学习也有帮助的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。