首页 > 代码库 > 函数对象+嵌套
函数对象+嵌套
#-*-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()
#没有打印效果,因为foo2和foo3都只是定义,并没有执行,所以没有打印效果
#如下就有打印效果了
#以下代码,注意缩进,也就是等级对应,在那一层定义的就在那一层调用
#分析这个代码的级别的时候,使用左边的+-先从最外边的函数开始分级层级关系
# 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()
函数对象+嵌套
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。