函数1

2019-08-26  本文已影响0人  快去学习不然怎么去看aimer

rb
wb

r+
w+
a+

函数

def foo();
    函数体         (return也算函数体,'''注释'''也算函数体)

函数调用 (先定义后调用)

foo()           得到函数返回值
foo             得到函数本身

代码执行的流程:
现在内存中建立函数,但是不执行,字形函数外的代码,当遇到调用函数的时候,才会执行函数内的内容

def func():
    print('from func')
def foo():
    print('from foo')
    func()

foo()  # 正常执行

返回值
在函数执行的过程中,当在函数体内遇到了 return关键字,函数就会立刻停止执行,并返回其返回值, return 之后的代码不会被执行。

return a                     #a可以为各种数据结构,当不定义,默认返回 None .返回多个值时,每个值用逗 
                                      号隔开,也就是元组的形式   

函数参数
只有在函数内才是局部变量 (形参)
其余都是全局变量 (实参)

形参:位置参数,默认参数
位置参数

def send_mail(to, title, content):
    send_info = {"user": to,
                 "title": title,
                 "content": content}
    return send_info

默认参数

def default_mail(title,  content,  to='xiannv@163.com'):
    send_info = {"user": to,
                 "title": title,
                 "content": content}
    return send_info                    位置参数写在最左边

实参:位置参数,关键字参数
位置参数:给形参的位置参数传参

info = send_mail("xiannv@163.com", 
                 "一生问候", 
                 "告诉你,一想到你,我这张丑脸上就泛起微笑。")

print(info)

Ps:
def myfunc(x, y, z):
    print(x, y, z)

tuple_vec = (1, 0, 1)
dict_vec = {'x': 1, 'y': 0, 'z': 1}

>>> myfunc(*tuple_vec)
1, 0, 1

>>> myfunc(**dict_vec)
1, 0, 1

关键字参数:关键字参数的关键字必须与形参的名字一致

info = send_mail(content="我爱你,不光是因为你的样子,还因为和你在一起时,我的样子", 
                 title="一生问候",
                 to="jingjing@126.com")

print(info)

万能参数:

用 * 表达式接收传进来的任意多个未明确定义的位置参数
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 position_arg(arg1, arg2, *args, k1='v1', **kwargs):
    pass

匿名函数

def f1(arg1,arg2):
    return arg1 + arg2           普通函数

lambda arg1,arg2:arg1 + arg2    默认函数
上一篇 下一篇

猜你喜欢

热点阅读