zoukankan      html  css  js  c++  java
  • 函数和常用模块【day05】:装饰器前戏(二)

    本节内容

    1. 嵌套函数
    2. 局部作用域和全局作用域的访问顺序

    一、嵌套函数

     1、定义

      在一个函数的函数体内,用def 去声明一个函数,而不是去调用其他函数,称为嵌套函数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def foo():
        print("in the foo")
        def bar():  #在foo函数体内,用def声明一个函数
            print("in the bar")
     
        bar()
    #调用foo函数
    foo()
     
    #输出
    in the foo
    in the bar

     以上是高阶函数的定义,但是我们来看看下面这种情况是不是高阶函数呐?

    1
    2
    3
    4
    5
    6
    7
    8
    def bar():
        print("in the bar")
     
    def foo():
        print("in the foo")
        bar()  #调用bar函数
     
    foo()

    很显然不是,因为只是调用了bar函数,没有用def去声明一个函数。

    二、局部作用域和全局作用域的访问顺序

    1、先来看一个小例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #局部作用域和全局作用域的访问顺序
    x=0
    def grandpa():
        x=1
        def dad():
            x=2
            def son():
                x=3
                print(x)
            son()
        dad()
    #调用grandpa
    grandpa()
     
    #输出
    3

     很显然最后输出的是3,这个说明作用域:只能是从里往外找,一层一层的的找。

     

  • 相关阅读:
    MySQL不支持的特性
    MySQL查询执行路径
    MySQL索引
    索引的选择性
    MySQL学习笔记_时间,多表更新,数据库元数据
    PowerDesigner 小技巧
    linux下清空文件内容
    mysql跟踪sql
    Navicat For Mysql快捷键
    PHP 配置多站点多目录
  • 原文地址:https://www.cnblogs.com/luoahong/p/9889859.html
Copyright © 2011-2022 走看看