首页 > 代码库 > function

function

function

  1. def

  2. function name

  3. ()

  4. function body

  5. 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‘}
>>>


本文出自 “华仔真棒” 博客,请务必保留此出处http://7540500.blog.51cto.com/7530500/1857571

function