博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础知识~ 函数详解
阅读量:6899 次
发布时间:2019-06-27

本文共 1210 字,大约阅读时间需要 4 分钟。

一  定义
     def 函数名(a,*args(位置元组),b=3,**kwargs(关键字字典)):
     return value //返回值
二  返回值
   1 返回值代表函数结束点
   2 返回值可以有多个
   3 返回值的接收变量类型为元组,可进行解包
   eg (a,b,c)=函数名()
三 参数

   1 分类 

      形参 单纯变量
      实参 负有实际值的变量
      传参 传递变量的过程

    2 注意 

      1 如果函数只有形参没有实参,那么在调用函数时必须初始化值
        2 1 按照变量顺序赋值
           2 按照变量名复制
           3 先按照变量顺序,再根据变量名复制
        eg
         def a(aa,bb)
         a(aa='12',bb='12')
    3  动态参数
        动态参数的出现是在于实参初始化值的数量是不固定的,不能限制数量
       1 都可以为空
       2 可以和形参和实参共存            

         *args(元组) **kwargs(字典)

         def a(*food)
          a('1','2','23') //返回元组
          def a(**food)
         a(1='23',2='232') //返回字典
       a(**kwargs)

   4 对于列表的传参,可以进行传参,然后return对象,这个对象和原列表是一个东西

    5 默认值如果是可变类型,每次使用的都是同一个

    6  注意事项

       1 形式 形参->动态参数->实参——>关键字参数 这种方式调用,一定要保证这种顺序,否则会出问题
         
 四 变量名称空间
    全局变量 1 声明在函数外,会持续到整个程序执行结束 2 全局变量作用于全局 3 查看函数globals() 
    局部变量 1 声明在函数内,会在函数执行完结束进行清除 2 全局变量作用于局部变量也只是暂时改变 3查看函数locals()
    内置变量

     1 局部变量如果想要调用全局变量 必须在函数进行global再次声明,否则函数是无法寻找定位的 (局部变量调用全局变量)

     2 如果在声明情况下调用全局变量,对全局变量的更改也是全局的这点要牢记 

     3 函数内嵌套也是寻找定位的函数局部变量,没有任何问题,不用再次声明为局部变量(函数内嵌调用前一层局部变量)

     4 函数内嵌套如果想实现变量运算,必须采用nolocal进行声明,而且即便修改也不会影响上一层嵌套函数的值,各自拥有各自的

      eg

       a= 5 

       def func():

          global a:

          a=a+1

             def func1()

                nolocal a

                a=a+1

                print a

         func1()

         print a

func()

                

五 打散特性

   1 目的 将列表 元组打散传入实参
   2 把 列表 字符串 元组 打散
   3 调用 函数形式 a(*实参)
     把字典打散
     调用函数形式 a(**实参)
六 注释
     function.__doc__ 文档函数 输出 注释
     注释
    单行注释
    多行注释
    函数注释

转载于:https://www.cnblogs.com/danhuangpai/p/10881305.html

你可能感兴趣的文章
RTP与RTCP协议介绍
查看>>
这家创业公司,为什么会在云栖大会上被反复提及?
查看>>
如何使用Unhook技术绕过安全软件的防护?
查看>>
运营商5G服务开跑?你不要被骗了!
查看>>
WCF后续之旅(4):WCF Extension Point 概览
查看>>
Alibaba Cloud and UK Met Office to Co-organise Tianchi Data Mining Contest
查看>>
SCALA表达示简例
查看>>
现代数据中心如何满足超高速互联的全球经济的需要?
查看>>
AI 如何保障校园安全?安防“老大”海康威视是这么做的
查看>>
【阿里云资讯】如何让云计算安全变得更“聪明”
查看>>
[LeetCode]--12. Integer to Roman
查看>>
阿里巴巴 江苏总部将落户南京
查看>>
为什么用Yarn来做Docker容器调度引擎
查看>>
Eclipse 扩展点常量ID
查看>>
MySQL · 引擎特性 · InnoDB 事务锁系统简介
查看>>
Android开发艺术探索——新的征程,程序人生路漫漫!
查看>>
java 如何读取src根目录下的属性文件
查看>>
.Net 垃圾回收机制原理(二)
查看>>
云效平台VIP俱乐部主题沙龙:用技术驱动企业提效
查看>>
android动画基础之Animation
查看>>