美文网首页
python函数篇

python函数篇

作者: 星中有数 | 来源:发表于2020-05-18 12:28 被阅读0次

    以下内容为阅读廖雪峰课程所做的课程笔记

    1、调用函数

    注:函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

    >>> a = abs  # 变量a指向abs函数

    >>> a(-1)   # 所以也可以通过a调用abs函数1

    2、定义函数

    注:函数可以返回多个值,但实际上返回的多个值时一个tuple,在语法上返回一个tuple可以省略括号,按位置赋给对应的值。

    3、函数参数


    注1:默认参数, 要牢记一点:默认参数必须指向不变对象!

    注2:可变参数

    可变参数就是传入的参数个数是可变的,有以下2种方式

    1)传入一个list或tuple

    2) 在参数前面加了一个*号

    def  calc(*numbers):

        sum =0

        for n in numbers: 

             sum = sum + n * n

        return  sum

    >>> calc(1, 2)    

      5

     >>> calc() 

    0    

    >>> nums = [1, 2, 3] 

    >>> calc(*nums) 

    14  

    注3:关键字参数

    关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

    def  person(name, age, **kw):

            print('name:', name,'age:', age,'other:', kw)

    # 引用例1:

    >>> extra = {'city': 'Beijing', 'job': 'Engineer'} 

    >>> person('Jack', 24, city=extra['city'], job=extra['job']) 

    name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}  

    # 引用例2:

    >>> extra = {'city': 'Beijing', 'job': 'Engineer'} 

    >>> person('Jack', 24, **extra)

     name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}  

    注4:命名关键字参数

    如果要限制关键字参数的名字,就可以用命名关键字参数,和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。

    附:

    *args是可变参数,args接收的是一个tuple;

    **kw是关键字参数,kw接收的是一个dict。

    以及调用函数时如何传入可变参数和关键字参数的语法:

    可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));

    关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。

    使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

    命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。

    定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。

    相关文章

      网友评论

          本文标题:python函数篇

          本文链接:https://www.haomeiwen.com/subject/okcuohtx.html