天天看点

function

function

def

function name

()

function body

return     #函数中,一旦执行了return,则函数的执行过程立即终止。function有一个默认的retrun值: None

def sendmail():

1. 普通参数

2. 默认参数(对形式参数设定一个默认值,默认参数只能放在参数列表的后面,可以有多个)

3. 指定参数

4. 动态参数:

*: 默认将传入的参数,全部放到一个tuple中

**:默认将传入的参数,全部放入字典中

万能参数: *args,**kwargs

def f1(*xargs):

    print(args,type(args))    #输出的是一个tuple

f1(11,22,"aa","bb")

li = ["abc",12,33,"def",45]

f1(li,"ghi")

f1(li)

(["abc",12,33,"def",45],)

f1(*li)                                   #对比传参的时候加*与不加*:不加,会把列表作为一个整体传入;加*,会把列表中的每一个元素分别传入

("abc",12,33,"def",45)

li="abcd"

f1(*li)

("a","b","c","d")

>>> def f1(**args):

...   print(args,type(args))        #输出是一个字典

...

>>> f1(n1="abc",n2=18)    #相当于指定参数,**的参数只能用k1="v1",k2="v2"这种方式传参

({'n1': 'abc', 'n2': 18}, <type 'dict'>)

>>> dic = {"k1":"v1","k2":"v2"}

>>> f1(kk=dic)

({'kk': {'k2': 'v2', 'k1': 'v1'}}, <type 'dict'>)

>>> f1(**dic)

({'k2': 'v2', 'k1': 'v1'}, <type 'dict'>)

>>> f1(dic)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: f1() takes exactly 0 arguments (1 given)

>>>

万能参数:

>>> def f1(*args,**kwargs):

...   print(args)

...   print(kwargs)

>>> f1(11,22,33,44,k1="v1",k2="v2")   #会把前面的传给*args,后面的传给**kwargs

(11, 22, 33, 44)

{'k2': 'v2', 'k1': 'v1'}

下一篇: function*

继续阅读