zoukankan      html  css  js  c++  java
  • 作用域,高阶函数

    global 全局作用域:

    • 函数内部不能直接修改外部变量

    a = 110                                                        #全局作用域

    def f1():                                                        #函数内部不能直接修改外部变量

      global a                                                         #应该声明全局变量
      print(a)
      a = a+1                                                 #修改 了全局变量 a=110。(得小心使用)
      return a+1

    nonlocal 局部作用域:

    a=110                                                              #   全局作用域 global
    def f6():
      a = 10                                                         # 闭包函数外的函数中 enclosing
      def ff6():
      ## global a                                                        # a=110
        nonlocal a                                                         # a=10
        a += 1                                                        # 局部作用域 local
        print(a)
        return a+1

      return ff6()

    高阶函数:

    • 能接收函数作为变量,或者返回值是函数(递归函数)

    求10的阶乘:递归------------>  返回函数本身

    def jiecheng(a):
      if a==1:
        return 1
    else:
      return jiecheng(a-1)*a

    >>> jiecheng(4)
    24

    >>> jiecheng(10)
    3628800

  • 相关阅读:
    异常定义-Mybatis中的源码参考
    前置机介绍说明
    MyBatis源码解析(一)
    Mybatis思
    石杉的架构笔记(一)
    nacos启动
    JVM图解
    二叉搜索树的第K大节点
    第一个只出现一次的字符
    表示数值的字符串
  • 原文地址:https://www.cnblogs.com/tangpg/p/7992818.html
Copyright © 2011-2022 走看看