欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

day09-10-python函数相关知识

程序员文章站 2022-04-28 12:54:16
初识函数 1.什么是函数 具有封装功能的代码块。 2.函数的定义,函数名,函数体以及函数的调用。 1.定义函数,使用def def 函数名(): 函数体 2.函数名,跟变量的命名规范基本相同 3.函数体,具体要执行的的功能 4.函数的调用:使用函数名可以调用函数,写法:函数名(),这个函数已经被调用 ......

初识函数

  1.什么是函数

    具有封装功能的代码块。

  2.函数的定义,函数名,函数体以及函数的调用。

    1.定义函数,使用def

      def 函数名():

        函数体

    2.函数名,跟变量的命名规范基本相同

    3.函数体,具体要执行的的功能

    4.函数的调用:使用函数名可以调用函数,写法:函数名(),这个函数已经被调用,里面的函数体会被执行

      注意:函数只要调用才能执行里面的代码

  3.函数的返回

      执行完函数之后,我们可以使用return来返回一个结果。

      1.不写return,默认返回none

      2.只写return,返回none

      3.return “jskdf”,返回一个字符串,后面可以是任何可以返回的代码段。

      4.return后面返回了多个结果,则调用者可以接受一个tuple,直接解构成多个变量

   4.函数的参数

      在调用函数时,可以给函数传递一个或者多个参数。参数可以是数字,字符串,列表,元组,字典等等。

      1.形参:写在函数声明的位置的变量叫形参,形式上的一个变量,可以用任何值来表示。

      2.实参:函数调用时给函数传递的值,叫实参,是函数真正意义上需要的值。

      3.传参:给函数传递消息的时候将实参的值传递给形参,函数内部就可以用这个形参的值了。

      4.参数的分类

        1.位置参数,大概意思就是按照位置的顺序把实参传递赋值到对应的形参中

        day09-10-python函数相关知识

        2.关键字参数:函数中的参数非常多就可以使用关键字参数了,只需要记住参数的名字,注意:使用关键字参数可以随意更换参数的顺序,不过不建议,对称比较好看。

        day09-10-python函数相关知识

        3.混合参数,把位置参数和关键字参数回合使用,但是要注意的是,关键字参数必须要写在位置参数的后边,否则会报错。

        day09-10-python函数相关知识

        综上所述:从实参的角度来看,分为这三种,形参较为复杂。(位置参数,默认值参数,动态参数)

函数进阶

  1.函数参数--动态传参

      适用于参数不确定或者参数太多。

      1.动态接收位置参数。动态参数必须放到最右边,当然也可以用关键字参数

        day09-10-python函数相关知识

      2.动态接收关键字参数。使用**kwargs

      day09-10-python函数相关知识

        注意:关键字参数必须放在位置参数后边。

        最终顺序:位置参数>*args>默认值参数>**kwargs,这四种参数可以任意的进行使用。

     3.动态传参的另一种方式,用*把可迭代对象按照顺序打散,用**可以把字典打散。   day09-10-python函数相关知识

 

  2.命名空间

      在python解释器开始执⾏之后, 就会在内存中开辟⼀个空间, 每当遇到⼀个变量的时候, 就 把变量名和值之间的关系记录下来, 但是当遇到函数定义的时候, 解释器只是把函数名读入内 存, 表示这个函数存在了,  ⾄于函数内部的变量和逻辑, 解释器是不关心的. 也就是说⼀开始 的时候函数只是加载进来, 仅此⽽而已, 只有当函数被调⽤和访问的时候, 解释器才会根据函数 内部声明的变量来进⾏开辟变量的内部空间. 随着函数执⾏行完毕, 这些函数内部变量占⽤的空 间也会随着函数执⾏完毕⽽而被清空. 

      我们给存放名字和值的关系的空间起⼀一个名字叫: 命名空间. 我们的变量量在存储的时候就 是存储在这片空间中的.

      命名空间分类:

        1. 全局命名空间--> 我们直接在py⽂文件中, 函数外声明的变量都属于全局命名空间

        2. 局部命名空间--> 在函数中声明的变量会放在局部命名空间

        3. 内置命名空间--> 存放python解释器为我们提供的名字, list, tuple, str, int这些都是内 置命名空间

      加载顺序:

        1. 内置命名空间
        2. 全局命名空间

         3. 局部命名空间(函数被执⾏的时候)

      取值顺序:

         1. 局部命名空间

         2. 全局命名空间

         3. 内置命名空间

    作⽤域:  作⽤用域就是作⽤用范围, 按照⽣生效范围来看分为 全局作⽤用域和局部作⽤用域   

    全局作用域: 包含内置命名空间和全局命名空间. 在整个⽂件的任何位置都可以使用(遵循 从上到下逐⾏执⾏). 局部作⽤用域: 在函数内部可以使⽤.

    作用域命名空间:

      1.全局作用域:全局命名空间+内置命名空间

      2.局部作用域:局部命名空间

      day09-10-python函数相关知识

  3.函数的嵌套

      很简单,一个函数中包含着另一个函数。

  4.global,nonlocal关键字

      day09-10-python函数相关知识

day09-10-python函数相关知识

day09-10-python函数相关知识

这个题弄懂,,作用域就差不多了。