zoukankan      html  css  js  c++  java
  • Python 函数介绍

    返回值

    # def f():
    #     print('ok')
    #
    #     return  10      #return 返回
    #                     #retrun作用  1,结束函数 2,返回某个对象
    #
    # a = f()
    # print(a)
    # print(f())
    
    def add(*args):
        Sum = 0
        for i in args:
            Sum += i
        return Sum     #保留sum的值   把sum赋给 add(1,2,3)
    a = add(1,2,3)
    print(a)
    
    #函数里如果没有return 会默认返回None (就是什么都没有)
    #如果ruturn多个对象,会返回一个多个对象组成的元组

    作用域

    #L>E>G>B。
    #L:local,局部作用域,即函数中定义的变量
    #E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域
    #G:globa,全局变量,就是模块级别定义的变量
    #B:built-in,系统固定模块里面的变量
    count = 10
    def outer():
        global count    #声明此处往下是使用全局变量,否则会报:先输出变量再给变量定义的错
        print(count)
        count = 100
        print(count)
    outer()
    #1,只有模块、类、及函数才能引入新作用域
    #2,对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量
    #3,内部作用域要修改外部作用域变量的值时,全局变量要使用global关键字,嵌套作用域变量要使用nonlocal关键字。
    # nonlocal是python3新增的关键字,有了这个 关键字,就能完美的实现闭包了

    闭包

    # 闭包  知识点
    #如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用
    # ,那么内部函数就被认为是闭包(closure).
    #(1)作用域
    #(2)高阶函数
    #(3)闭包
    def outer():
        x = 10
        def inner():     #条件一 inner就是内部函数
            print(x)    #条件二 外部环境的一个变量
    
        return  inner   #结论:内部函数inner就是一个闭包
    
    #关于闭包  闭包=函数块+定义函数时的环境,inner就是函数块,x就是环境
    # ,当然这个环境可以有很多,不止一个简单的x。
  • 相关阅读:
    多线程锁--怎么理解Condition
    ThreadPoolExecutor
    ThreadFactory
    java内部类的初始化
    Android Private Libraries 和 Dependencies的区别
    Android严苛模式StrictMode使用详解
    [法律法规]《网络安全等级保护条例(征求意见稿)》
    [法律法规]中华人民共和国网络安全法
    Sqlserver tablediff的简单使用
    Sqlserver 命令行方式修改 用户密码的方法
  • 原文地址:https://www.cnblogs.com/linpei/p/10980471.html
Copyright © 2011-2022 走看看