zoukankan      html  css  js  c++  java
  • 函数进阶 —— 动态参数、内置空间、函数嵌套

    本节内容:

    1.动态参数

    2.函数的注释

    3.函数名称空间(三个空间)

    4.两个作用域、全局变量和局部变量

    5.函数的嵌套

    2.函数的注释:

    def aaa(user,pwd):
        """
        登录函数
        :param user: 用户名
        :param pwd: 密码
        :return: 校验后的账号和密码
        """
        print(111)
    
    print(aaa.__doc__)
    
    
    登录函数
        :param user: 用户名
        :param pwd: 密码
        :return: 校验后的账号和密码
    View Code
    
    
    

    3.名称空间

     
    1.内置空间中所有代码   --> 内置空间
    2.自己写的py文件 --> 全局空间
    3.函数中的代码 --> 局部空间

    
    
    加载顺序:
    '''
    1.内置空间
    2.全局空间
    3.局部空间
    '''

    # 取值顺序:
    '''
    1.局部空间
    2.全局空间
    3.内置空间
    4.找不到就报错
    '''
    
    
    4.作用域:
    '''
    1.全局作用域 内置+全局 = 全局作用域
    2.局部作用域 函数内的就是局部作用域

    全局变量:定义在函数外部的变量。
    局部变量:定义在函数内部的变量,或者代码块内部的变量。
    global(指定全局变量):在局部空间只修改全局变量,没有就创建修改。
    nonlocal(指定上一级变量):在局部空间内,修改最近的上一层变量,如果没有就继续往上一层查找,

    1 a = 0
    2 def func1 ():
    3     a = 1
    4 def func2 ():
    5     print a
    6 func1()
    7 func2()
    
    
     
    1 a = 0
    2 def func1 ():
    3     global a 
    4     a = 1
    5 def func2 ():
    6     print a
    7 func1()
    8 func2()
    
    
    
     
    a = 10
    def func():
        global a  # (声明)我要修改a 找到要a
        a+=1      # 修改
    func()
    print(a)
    View Code
    
    

    输出的a是11

     
    def func():
        global a  #(声明我要修改a,找不到a的时候在全局创建一个 a=0)
        a = 1  # a = 1
    func()
    print(a)
    View Code
    
    

    输出的a是1


    重点:5.函数的嵌套:
    函数的嵌套1:
     1 def fun():
     2     print(3)
     3     def f():
     4         print(2)
     5     print(1)
     6     f()
     7 fun()
     8 print(4)
     9 
    10 结果:
    11 3
    12 1
    13 2
    14 4
     
     1 name = "yangtuo is good"       #    1
     2 def yangtuo():                 #    2     将整个函数放入内存编译,但是不执行
     3     name = "yangtuo"           #
     4     print(name)                #
     5     def yang():                #    3     将整个函数放入内存编译,但是不执行
     6         name = "yang"          #
     7         print(name)            #
     8         def    tuo():          #    4    将整个函数放入内存编译,但是不执行
     9             name = "tuo"       #
    10             print(name)        #
    11         tuo()                  #    4.1    执行函数tuo,得出结果 tuo
    12         print(name)            #    5    调取yang的name,得出结果    yang
    13     yang()                     #    3.1    执行函数yang,得出结果 yang
    14     print(name)                #    6    调取yangtuo的name,得出结果yangtuo
    15 yangtuo()                      #    2.1    执行函数yangtuo,得出结果 yangtuo
    16 print(name)                    #    7    得出结果yangtuo is good

    函数的嵌套2
     1 a = 1
     2 def fun_1():
     3     a = 2
     4     def fun_2():
     5         nonlocal a
     6         a = 3
     7         def fun_3():
     8             a = 4
     9             print(a)      #4
    10         print(a)          #3
    11         fun_3()
    12         print(a)          #3
    13     print(a)              #2
    14     fun_2()
    15     print(a)              #3
    16 print(a)
    17 fun_1()
    18 print(a)                  #1



  • 相关阅读:
    mysql缓存
    复杂映射
    SQL 映射的 XML 文件
    xml配置文件
    从xml中构建sqlSessionFactory
    eclipse使用时jar不在libraries
    去掉不用的工作空间
    javac找不到或无法加载主类 com.sun.tools.javac.Main,
    文本,布局,样式
    (常用)re模块
  • 原文地址:https://www.cnblogs.com/chitangyuanlai/p/10530557.html
Copyright © 2011-2022 走看看