zoukankan      html  css  js  c++  java
  • 函数及嵌套

        1.   python中函数定义方法:  
    def test(x):

    "The function definitions"
        x+=1
         return x        
    def:定义函数的关键字

    test:函数名

    ():内可定义形参

    "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)

    x+=1:泛指代码块或程序处理逻辑

    return:定义返回值

    2。为何使用函数

    1. 代码重复过多,一个劲的copy and paste不符合高端程序员的气质
    2. 如果日后需要修改发邮件的这段代码,比如加入群发功能,那你就需要在所有用到这段代码的地方都修改一遍

    3.使用过程

        3.1return

       返回值数=0:返回None

         返回值数=1:返回object

         返回值数>1:返回tuple

        3.2参数

         1.参数的分别:实参(实际的要交给函数的内容)和形参(定义函数的时候它只是一个形式,只是一个变量的名)

          2.参数可以传递多个,多个参数之间用逗号分割。

          3.位置参数

                   站在实参角度:1.按照位置传值2.按照关键字传值3.位置、关键字形式混着用

                   站在形参角度:位置参数必须传值

            4.动态参数 :*args  **kwargs

            5.注意参数混合用的顺序

                    位置参数>*args>默认参数>**kwargs

     

    4.局部变量和全局变量

    在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
    全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
    当全局变量与局部变量同名时:
    在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
     
    5.嵌套函数和作用域
           Python语言允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义
     经典列子:
    
    
    def foo():         #定义函数foo(),
        m=3            #定义变量m=3;
        def bar():     #在foo内定义函数bar()
            n=4        #定义局部变量n=4
            print m+n  #m相当于函数bar()的全局变量
         bar()         #foo()函数内调用函数bar()
    
    
    

      闭包函数

    定义:

          python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

    使用闭包注意事项

    1,闭包中是不能修改外部作用域的局部变量的

    def foo():  
    ...     m = 0  
    ...     def foo1():  
    ...         m = 1  
    ...         print m  
    ...  
    ...     print m  
    ...     foo1()  
    ...     print m  
    ...  
    >>> foo()  
    0  
    1  
    0  
    

      从执行结果可以看出,虽然在闭包里面也定义了一个变量m,但是其不会改变外部函数中的局部变量m

    
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    复制代码

       

  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/hanxiaofeicf/p/7240771.html
Copyright © 2011-2022 走看看