python_Day07||Lambda表达式&类与对象上

本文介绍了Python中的匿名函数lambda,包括其定义、应用及与def函数的区别。展示了filter和map函数的使用,并通过实例说明如何自定义高阶函数。此外,还详细讲解了Python类的创建、属性与方法,包括封装、继承和多态的概念。文章最后探讨了Python中的self含义、私有变量的定义以及魔法方法的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lambda表达式

1.匿名函数的定义
python中有两类函数,一是用def关键词定义的正规函数,二是用关键词lambda定义的匿名函数

#lambda argument_list: expression
# 1.lambda - 定义匿名函数的关键词。
# 2.argument_list - 函数参数,它们可以是位置参数、默认参数、关键字参数,和正规函数里的参数类型一样。
# 3.: - 冒号,在函数参数和表达式中间要加个冒号。
# 4.expression - 只是一个表达式,输入函数参数,输出一些值。

def sqc(x):
    return x**2
y=[sqc(i) for i in range(10)]
print(y)
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
lbdsqc = lambda x:x**2
z = [lbdsqc(i) for i in range(10)]
print(z)
#[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2.匿名函数的应用

  • filter(function, iterable) 过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换
odd = lambda x:x%2==0
templist=filter(odd,[1,2,3,4,5,6,7,8,9])
print(list(templist))
#[2,4,6,8]
  • map(function, *iterables) 根据提供的函数对指定序列做映射
#map(function, *iterables) 根据提供的函数对指定序列做映射
map1 = map(lambda x,y:x+y,[1,2,3],[1,2,3])
print(list(map1))#注意给他添加个列表
#[2,4,6]
  • 自己定义高阶函数
def apply_to_list(fun,somelist):
    return fun(somelist)
list=[1,2,3,4,5]
print(apply_to_list(sum,list))
#15
print(apply_to_list(len,list))
#5

类与对象

1.对象=属性+方法
(1)封装:信息隐蔽技术
使用关键字 class 定义 Python 类,关键字后面紧跟类的名称、分号和类的实现

class Turtle: ## Python中的类名约定以大写字母开头
    #属性
    color = 'green'
    weight = 10
    legs = 4
    shell = True
    mouth ='大嘴'
    #方法
    def climb(self):
        print('我正在努力的爬')
    def run(self):
        print('我正在努力的跑')

tt=Turtle()
print(type(tt))
#<class '__main__.Turtle'>
tt.climb()#我正在努力的爬
tt.run()#我正在努力的跑

(2)继承:子类自动共享父类之间数据和方法的机制

class MyList(list):
    pass
lst = MyList([1, 5, 2, 7, 8])
lst.append(9)
lst.sort()
print(lst)
#1,2,5,7,8,9

(3)多态:不同对象对同一方法响应不同的行
2.self是什么
3.python中的魔法方法
4.公有和私有
在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会为私有的了。

class Justcounter:
    __secretCount=0 #私有变量
    publicCount=0   #公开变量

    def count(self):
        self.__secretCount +=1
        self.publicCount +=1
        print(self.__secretCount)

Counter=Justcounter()
Counter.count()#1
Counter.count()#2
print(Counter.publicCount) # 2
#print(Counter.__secretCount)
# AttributeError: 'JustCounter' object has no attribute '__secretCount'会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值