目录
1-3 参数形式 - range(len('hello'))
2-1 位置参数 - 实参和形参位置上一一对应,不可多值 、少值
2-2 关键词参数 - 形参实参指定变量名,以关键词辨认位置
2-3 默认形参 -设置默认值的关键词参数,传值时可省略传入过程,以默认值替代
2-4-3 将传给一个函数的参数 原封不动的传给另一个函数 -- *args + **kwargs
2-5 命名关键词参数 - *后定义的参数,必须被传值(有默认值的除外)
3-1 函数的嵌套调用 - 在调用一个函数过程中,其内部代码又调用了其他函数
3-2 函数的嵌套定义 - 一个函数内部又定义了另外一个函数
一、函数的三种形式
1-1 语句形式 - foo()
def foo() : print('a') return 1 foo()
1-2 表达式形式 - 3*len('hello')
def foo(): print('a') return 1 print(len(foo()))
1-3 参数形式 - range(len('hello'))
def foo1(a): print(a) return a def foo2(): print('a') return '123' print(foo1(foo2()))
二、 形参 and 实参
2-1 位置参数 - 实参和形参位置上一一对应,不可多值 、少值
def func1(x,y): print(x,y) func1(1,2)
2-2 关键词参数 - 形参实参指定变量名,以关键词辨认位置
注意:
- 实参传入时可结合位置参数 和 关键词参数 但格式只能为(位置参数,关键词参数),二者位置不可对调
- 实参不可对同一个值进行重复传值
def func1(name,age): print(name,age) func1('lin',age = 18) open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): open('a.txt','w',encoding='utf-8')
2-3 默认形参 -设置默认值的关键词参数,传值时可省略传入过程,以默认值替代
def func1(name,age,sex = 'male'): print(name,age,sex) func1('lin',age = 18) func1('lin',18,sex='female')
2-4 可变长参数 - 实参值的个数不固定
2-4-1 按位置的可变长参数 -- *args
def foo(x,y,*args): print(x,y) print(args) foo(1,2,3,4,5) # 在实参中带*:使其打散成位置实参进行赋值 def foo(x,y,*args): print(x,y) print(args) foo(1,2,*[3,4,5]) #== foo(1,2,3,4,5,6)
2-4-2 按关键词的可变长参数 -- **kwargs
def foo(x,y,z): print(x,y,z) foo(*[1,2,3])#== foo(1,2,3) def foo(x,y,**kwargs): print(x,y) print(kw