码迷,mamicode.com
首页 > 其他好文 > 详细

函数对象+嵌套

时间:2017-05-28 21:39:40      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:注意   作用   rom   数据   oba   UI   tin   容器类   返回值   

#-*-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()
 

函数对象+嵌套

标签:注意   作用   rom   数据   oba   UI   tin   容器类   返回值   

原文地址:http://www.cnblogs.com/lazyball/p/6916631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!