'''
1.简介
2.函数
2.1函数的定义
2.2函数的调用
2.3函数文档
2.4函数参数
2.4.1位置参数 这些参数在调用时,位置要固定
def functionanme(arg1):
dunctionsuit
return [expression]
2.4.2默认参数
def functionname(arg1,arg2=v):
functionsuit
return [expression]
arg2 = v
默认参数=默认值,调用函数时,如果默认参数的值如果没有传入,则被默认为默认值
默认参数要放在位置参数后面,不然会报错
调用函数时,参数的顺序可以和声明的顺序不一致
2.4.3可变参数 参数的数量是可变的,可以是1,2,3,4...个 ,ards相当于一个元组
def functionname(arg1,arg2=v,*args):
functionsuit
return [expression]
def printinfo(arg,*s):
print(arg)
for i in s:
print(i)
printinfo(1,1,2,3,4,5,6)
2.4.4关键字参数 可以是0个到任意个,自动组装成一个字典,kw相当于一个字典
def functionname(arg1,arg2=v,*args,**kw):
functionsuit
return [expression]
def printinfo(arg1,*args,**kw):
print(arg1)
print(args)
print(kw)
printinfo(1,2,3)
1
(2, 3)
{}
printinfo(1,2,3,a=4,b=5,c=6)
1
(2, 3)
{'a': 4, 'b': 5, 'c': 6}
2.4.5命名关键字参数
2.4.6参数组合
参数定义的顺序必须是:
位置参数、默认参数、可变参数、关键字参数
位置参数、默认参数、命名关键字参数、关键字参数
定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个元组
**kw是关键字参数,kw接收的是一个字典
2.5函数的返回值
2.6变量作用域
闭包
3.lambda表达式
3.1匿名函数的定义
python中有两类函数
第一类:用def关键字定义的正规函数
第二类:用lambda定义的匿名函数
lambda argument_list:expression
argument_list:可以是位置参数、可以是默认参数、可以是可变参数、可以是关键字参数
expression:一个表达式
lambda匿名函数没有return,因为它本身结果就是一个返回值
lambda匿名函数有自己的命名空间,不能调用它参数列表外或全局命名空间的参数。
a = lambda x:x**2
print([a(x) for x in range(10)])
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3.2匿名函数的应用
函数式编程:我的理解就是参数输入,待结果输出后,参数不变;
匿名函数常用于函数式编程的高阶函数,主要形式有两种:
1、参数是函数(filter,map)
2、返回值是函数(closure)
filter(function,iterable)
odd = lambda x:x%2==1
templist = filter(odd,[1,2,3,4,5,6,7,8,9]) 返回一个迭代器对象
print(list(templist)) 可用list转换为列表
map(function,*iterables)
m1 = map(lambda x:x**2,[1,2,3,4,5]) [1,4,9,16,25]
m2 = map(lambda x,y:x+y,[1,2,3],[4,5,6]) [5,7,9]
自定义高阶函数
list = [1,2,3,4,5]
1、求和
def my_func(func,argslist);
return func(argslist)
my_func(sum,list) = 15
2、求列表长度
my_func(len,list) = 5
3、求平均值
my_func(lambda x:sum(x)/len(x),argslist) = 3
4.类与对象
类就是一个模具,对象是模具造出的模型!
封装:信息隐蔽技术
继承:子类自动继承父类的属性和方法,并且子类可以增加自己的属性或方法,或重写父类的方法
多态:不同对象使用同一方法的响应不同
self:类中的方法都要自带一个self,代指实例出来的对象本身
__int__(self,args):初始化方法,当对象实例化前,自动调用该初始化函数,初始化一些对象的属性
公有和私有:在变量名或函数名前加__表明私有
4.1属性与方法组成对象
4.2self是什么?
4.3python的魔法方法
4.4公有和私有
4.5继承
4.6组合
4.7类、类对象和实例对象
4.8什么是绑定
4.9一些相关的内置函数
issubclass(Aclass,Bclass) 判断Aclass是否是Bclass的子类,是返回True;不是则返回False
isinstance(obj,class)判断一个对象是否是一个类的实例,是返回True;不是返回False
hasattr(obj,name) 判断一个对象是否包含对应属性
getattr(obj,name,default)返回一个对象的属性值
setattr(obj,name,value)设置一个对象的属性值
delattr(obj,name)删除一个对象的属性
5.魔法方法
5.1基本的魔法方法
5.2算数运算符
5.3反算术运算符
5.4增量赋值运算
5.5一元运算符
5.6属性访问
5.7描述符
5.8定制序列
5.9迭代器
'''