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'会报错