zoukankan      html  css  js  c++  java
  • 函数 二

    一、函数的对象

    1:可以被引用

    def bar():
        print('from bar')
    f=bar
    f()  #打印结果  from bar       bar()  被f引用

    2、可以当做参数传入

    x=1
    def func(a):
        print(a)
    func(x)#打印结果为1  func(1)即为func(a)调用即为 print(1

    def bar(): 第4步
    print('from bar') 第5步

    def wrapper(func): #func=bar 第2步
    func() #bar() 第3步

    wrapper(bar) 第一步 #打印结果为from bar

    3、可以当做函数的返回值

    x=1
    def foo():
        return #即return x 的值,即1
    
    res=foo()   第2步 就是res的值就是调用foo()
    print(res) # 第一步就 是打印res 的值
    def bar():
        print('from bar')
    
    def foo(func): #func=<function bar at 0x00000225AF631E18>
        return func #return <function bar at 0x00000225AF631E18>
    
    
    foo(bar) #f=<function bar at 0x00000225AF631E18>
    #  foo(bar)  就是把bar 赋值给func, 所以foo(func)就是foo(bar).即return (func)为
    return  bar 的值,  而bar的值 即为from bar.

    4、可以当做容器中类型的元素

    def get():
        print('from get')
    
    def put():
        print('from put')
    
    l=[get,put]
    
    # print(l)
    l[0]()  #打印结果 为  l[0]为l列表中的第一个元素get,所以l[0]()为get()
    即结果为 from get.
       其中get() 这个元素为l列表里的元素

    二、闭包函数  

    定义在函数内部的函数, 并且该函数包含对外部函数作用域中名字的引用,该函数就称为闭包函数

    def outter():
        name='egon'
        def inner():
            print('my name is %s' %name)
    
        return inner
    
    
    f=outter()
    
    
    #outter()调用 要用到inner()函数, inner函数在outter()函数的里面, 且影响到外部函数的引用 ,所以  inner()函数即为闭包函数
  • 相关阅读:
    sql.srcipt
    sowmodaldialog
    4) 删除虚拟应用程序
    JavaScript读写Cookies
    第5章 脚本运行期库对象
    npm serve md 工具 [MD]
    cleanmark 清除格式 博客内容提取 [MD]
    Hex编码 十六进制编码
    Windows Server AppFabric(Codename:"Dublin&Velocity")介绍
    WF4设计器模型:编辑范围ModelEditingScope
  • 原文地址:https://www.cnblogs.com/lx3822/p/8665776.html
Copyright © 2011-2022 走看看