• 函数对象+嵌套


    #-*-coding:utf-8 -*-
    '''
    函数对象:函数是第一类对象,即函数可以当做数据传递
    1.可以被引用
    2.可以当做参数来传递
    3.返回值可以是函数
    4.可以当做容器类型的元素
    '''
    #1.可以被引用
    # def foo():
    # print('from foo')
    # func=foo
    # print(foo)
    # print(func)
    # func()
    #2.可以被当做参数传递
    # def foo():
    # print('from foo')
    # def bar(func):
    # print(func)
    # bar(foo)
    #3.返回值可以是函数
    # def foo():
    # print('from foo')
    #
    # def bar(func):
    # return func
    #
    # f=bar(foo)
    # print(f)
    # f()
    #4.可以当做容器类型的元素
    # def foo():
    # print('from foo')
    #
    # dic={'func':foo}
    # print(dic['func'])
    # dic['func']()

    '''
    1.函数的嵌套调用
    2.函数的嵌套定义

    '''
    #1.函数的嵌套调用
    # def max2(x,y):
    # return(x if x > y else y)
    #
    # def max4(a,b,c,d):
    # res = max2(a,b)
    # res2= max2(res,c)
    # res3= max2(res2,d)
    # return res3
    # print(max4(1,2,3,4))

    #2.函数的嵌套定义
    #下面这段代码有打印效果吗?
    # def foo():
    # def foo2():
    # print('from foo2')
    # def foo3():
    # print('from foo3')
    # foo()
    #没有打印效果,因为foo2foo3都只是定义,并没有执行,所以没有打印效果
    #如下就有打印效果了
    #以下代码,注意缩进,也就是等级对应,在那一层定义的就在那一层调用
    #分析这个代码的级别的时候,使用左边的+-先从最外边的函数开始分级层级关系
    # def foo():
    # def foo2():
    # print('from foo2')
    # def foo3():
    # print('from foo3')
    # foo3()
    # foo2()
    # foo()

    
    
    #名称空间

    ##1.内置名称空间
    #sum,min,max...
    #python解释器启动的时候就会产生
    #print(max([1,2,3]))
    #如何看内置名称
    # import builtins
    # buil = dir(builtins)
    # for i in buil:
    # print(i)

    ##2.全局名称空间
    #文件的执行会产生
    #文件级别的

    ##3.局部名称空间
    #调用函数时,会产生局部名称空间
    #只在函数调用时临时绑定,调用结束解除绑定

    #名称空间学习完毕 15分钟处


    #作用域

    #1.全局作用域 内置名称空间 全局名称空间
    #2.局部作用域 局部名称空间
    # 名字的查找顺序
    #局部-全局-内置
    #
    # x = 2
    # def func():
    # print('from func')
    # y = 1
    # def foo():
    # print('from foo')
    # foo()
    # func()
    #print(globals()) #查看全局作用域内的名字
    #print(locals()) #注意 本来查看局部作用域内的名字 但是命令执行在全局级别,在全局里的局部还是全局

    # def func():
    # print('from func')
    # y = 1
    # print(locals()) #在局部里执行 看到的就是局部作用域内的函数
    # func()
     
  • 相关阅读:
    【转载】C#使用Split函数根据特定分隔符分割字符串
    【转载】 Asp.Net安全之防止脚本入
    【转载】C#使用as关键字将对象转换为指定类型
    【转载】C#使用is关键字检查对象是否与给定类型兼容
    【转载】C#将字符串中字母全部转换为大写或者小写
    【转载】使用Response.WriteFile输出文件以及图片
    【转载】常见面试题:C#中String和string的区别分析
    【转载】Asp.Net中Cookie对象的作用以及常见属性
    【转载】C#指定文件夹下面的所有内容复制到目标文件夹下面
    【转载】Asp.Net中应用程序的事件响应次序
  • 原文地址:https://www.cnblogs.com/lazyball/p/6916631.html
Copyright © 2020-2023  润新知