zoukankan      html  css  js  c++  java
  • python之函数式编程

    一、定义和使用

      1、函数时编程的作用:降低代码的重复率,增强代码的可读性

      2、格式:  def  函数名(参数):                   

            函数体

            返回值

        def表示关键字,代码执行到def时,就知道这是函数,程序会将其放置内存不执行它,只有调用函数时才会被执行

        函数名:函数的名称,日后根据函数名来调用函数

        参数:为函数提供数据

        函数体:执行一系列的操作,如:打印,计算0-100的和等

        返回值:当函数执行完毕后,可以给调用返回数据

      3、返回值

        函数是一个功能模块,该功能是否执行成功与否,需要通过返回值来告诉调用者

        需要注意的两点:

          1)若没有return,默认返回None

          2)一旦遇到return,函数内部return 以下的代码都不执行

      4、参数(为函数提供数据,函数根据不同的数据执行不同的功能)

        1)实参、形参

          1、形式参数:在定义函数时,括号里面没有实际值的参数

          2、实际参数:在调用函数时,括号里面有实际值的参数

        2)普通参数

          在调用时,参数数量要和定义时一致,且按顺序一一对应

        3)指定参数

          在调用时,直接将实际值赋给形参,这样就不需要位置一一对应了

    def main(a,b):
        print(a) 
    main(1,100)                    #普通调用 ,a对应1 ,b对应100         
    main(b=1,a=100)                #指定参数的调用,a对应100,b对应1
    

        4)默认参数(默认参数要放在函数尾部,如:def fun(a=1,b)×     def fun(b,a=1)

          在函数定义时,将形参指定默认值,当调用时没有传入实参,则Ⅹ用默认值,若传入实参则使用实参

            例:def fun1(a,b=1)

              fun1(2)        #没传入实参,b等于默认值1

              fun1(2,3)  #传入实参,b等于实参3

        5)动态参数

          1、在参数前加 * ,表示允许传入多个参数

            a、直接调用,每个实参被当作a的一个元素

    def main(*a):
        print(a,type(a))
    main([1,2])
    结果:([1,2]) <class 'tuple'>    #a 是元组,每个实参就是 a 的一个元素 
    

            b、在实参前加 * ,实参的每个元素相当于形参中的元素

    def main(*a):
        print(a,type(a))
    main(*[1, 2])
    结果:(1, 2) <class 'tuple'>
    

          2、在参数前加**,允许传入键值对(**kwargs :kwargs是字典类型)

            a、直接调用

            b、在参数前加**

          3、设置两个参数*args(arguments  参数),**kwargs(key word arguments  关键字参数)

            调用同上两种,键值对则放入kwargs,反之放入args

      5、局部变量和全局变量

        全局变量

          用大写,这样便于区分

          要修改,前加global

        局部变量

          用小写,只能在函数内部调用

     二、参数传递

      python中参数传递是将值的引用传递给形参

        其它语言有两种方式可选择:

          1、传递引用,指向同一个值

          2、重新创建一个值,再传给形参

    三、判断对象是不是字符串、列表、元组或字典等数据类型

      isinstance(x,A_tuple):判断对象是不是对应的数据类型

        输入:x表示对象名,A_tuple表示类名(可以是:str、int、tuple、list、dict等)

        功能:判断对象类型

        输出:当对象的数据类型和后面的类名一致时,返回True,否则返回False

    >>> isinstance(12,int)
    True
    >>> isinstance('12',int)
    False
    >>> isinstance({1:'12'},dict)
    True
    

     

  • 相关阅读:
    缓存使用的最佳实践
    如何科学的设置线程池
    双检查锁失效
    Minor GC、Major GC和Full GC之间的区别
    full gc频繁的分析及解决案例
    MySQL的并发控制与加锁分析
    全面理解Java内存模型
    JAVA中MAP转LIST
    java 编码转换
    自定义VIew基础
  • 原文地址:https://www.cnblogs.com/tandonghao/p/9157249.html
Copyright © 2011-2022 走看看