git checkout -b day06 dev
以dev为节点,下的分支day06
函数
def foo();
函数体 (return也算函数体,'''注释'''也算函数体)
函数调用 (先定义后调用)
foo() 得到函数返回值
foo 得到函数本身
代码执行的流程:
现在内存中建立函数,但是不执行,字形函数外的代码,当遇到调用函数的时候,才会执行函数内的内容
def func():
print('from func')
def foo():
print('from foo')
func()
foo() # 正常执行
返回值
在函数执行的过程中,当在函数体内遇到了 return关键字,函数就会立刻停止执行,并返回其返回值, return 之后的代码不会被执行。
return a a可以为各种数据结构,当不定义,默认返回 None .返回多个值时,
每个值用逗号隔开,也就是元组的形式
函数参数
只有在函数内才是局部变量 (形参)
其余都是全局变量 (实参)
形参:位置参数,默认参数
位置参数 和 关键字参数 是在函数调用的情况下的概念
如: arg1,arg2
位置参数
在传参时,值和定义好的形参有一一对应的关系
def send_mail(to, title, content):
send_info = {"user": to,
"title": title,
"content": content}
return send_info
默认参数 如:arg = 5
def default_mail(title, content, to='xiannv@163.com'):
send_info = {"user": to,
"title": title,
"content": content}
return send_info 位置参数写在最左边
关键字参数
在传参时,利用key = value 的方式传参,没有对位置的要求
万能参数: *args 和 **kwargs动态参数
用 * 表达式接收传进来的任意多个未明确定义的位置参数
def foo(x, y, *args):
print(args)
foo(1, 3, 5, 6)
在函数体内接收到的参数会放在元组中
用 ** 表达式接收传进来的任意多个未明确定义的关键字参数
def func(x, y, **kwargs):
print(kwargs)
func(1, 3, name='shark', age=18)
在函数体内接收到的参数会放在字典中
def func(x, y, **kwargs):
print(kwargs)
func(1, 3, name='shark', age=18)
函数默认存在retrun,
网友评论