zoukankan      html  css  js  c++  java
  • 武道之路-炼体期五重天

    函数:

    作用:代码重用性,数据一致性,可移植和扩展。

    在python3.x中 过程和函数都是 def 函数名(形参): 如此定义,而区别是函数有return 返回值,而过程没有,但是默认返回None,return 可以返回多个值,用逗号隔开(实际上是一个元组),return 还有结束函数运行的作用。

    函数调用:先定义函数,对应传参才能调用(一般定义的形参个数必须大于等于传入的实参个数,因为可能会有默认参数,参数组会除外,即是 *args(元组),**kwargs(字典)),传参有位置传参和关键字传参,

    参数组:主要用于不确定实参传入个数时,或是直接想传入元组或是字典。

    默认参数:形参位置有默认值,不传此位置的参数,会根据默认值计算,否则按传入的计算    

    例: def test(x,y,z):

        ''' 一般这里写注释'''

        print(x,'---',y,'---',z)

        return 'test----'

    位置传参调用: test(2,4,5)->一一对应x,y,z

    关键字传参:test(y=2,x=4,z=8),找到对应的形参名并赋值 

    当混用二者时,位置传参在前面(必须对应传参才能调用) 如: test(2,z=6,y=3)

    *args  如:

    def test1(x,*args):

        print(x,'---',args)

        return 'test1----'

    可test1(2,4,5,6)->x=2 args:(2,4,6); 即是把多余的位置传参变成元组

    还可test1(2)->x=2,args:(),不传为默认空元组,test1(x=3,*[2])->x=3,args:(3,);test1(6,*(2,5))->x=6,args:(2,5)

    **kwargs 如:

      def test3(x,y=6,**kwargs):

        print(x,'---',y,'---',kwargs)

        return '222'

    test3(6,name='ddd',kk='gg')->x=6,y默认为6,kwargs位{‘name’:'dd','kk':'gg'},即是把对应多的关键字传参变成key=>value对应的字典,注意:需要传入字典的key最好不要和其它形参相同名,不然会报多传的错误的。

    test3(y=3,x=5,mm='fff')->x=5,y=3,kwargs:{'mm':'fff'};test3(7,1)->x=7,y=1,kwargs:{};test3(x=3,3,**{'name':'55'})->x=3,y=3,kwargs:{'name':'55'}

    3.x 全局变量及局部变量:

    全局变量:一般在程序顶级定义的变量就是全局变量,而在子程序(一般是函数)里定义的变量一般是局部变量,如果同名,在局部作用域里局部变量起作用,反之亦然。

    当全局变量是比较复杂的类型(一般是列表,字典,集合)时,在函数中是可以直接修改了全局变量

    当全局变量是单一类型(字符,数字等)时,在函数中可用 global 重新定义全局变量名 就可修改(一般不建议如此,因为可能不知道函数被调用几次)

    在函数内可定义全局变量(直接 global 变量名),一般不建议如此。

  • 相关阅读:
    5.3公理系统
    5.2逻辑语言vs逻辑演算
    Spike-in 对照(Spike-in control)
    R 语言学习笔记(4)—— 数值&字符处理
    R 语言学习笔记(3)—— 基础绘图
    R语言学习笔记(2)——数据结构与数据集
    R 语言学习笔记(1)——R 工作空间与输入输出
    单核苷酸多态性SNP(single nucleotide polymorphism)
    你真的遵守编码规范了吗
    论牧羊犬如何混迹于Scrum圈
  • 原文地址:https://www.cnblogs.com/wh-alan/p/8420910.html
Copyright © 2011-2022 走看看