函数

2019-08-27  本文已影响0人  魔曦帝天
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,

上一篇下一篇

猜你喜欢

热点阅读