Python:函数的命名空间、作用域与闭合函数
2018-06-18 00:05:29来源:未知 阅读 ()
1,参数陷阱
2,三元运算
3,命名空间与作用域
3.1命名空间的种类
依赖倒置原则:上层模块应该依赖下层模块,不能反向依赖
def input(): print('in input now') def func(): input() func()
4,作用域有两种
全局作用域与局部作用域
a =1 def func(): global a a+=1 func() print(a)
# a = 1 # b = 2 # def func(): # x = 'aaa' # y = 'bbb' # print(locals()) # print(globals()) # # func() # print(globals()) # print(locals()) #本地的--->在函数体的外部使用locals,作用与globals是相同的
a =1 b =2 print(globals()) print(locals())
5,函数的嵌套调用
def max(a,b) return a if a>b else b def the_max(x,y,z): c =max(x,y) return max(c,z) print(the_max(1,2,3))
在一个函数的函数体内调用另一个函数叫做函数的嵌套调用
6,函数的嵌套定义
内部函数可以使用外部函数的变量叫做函数的嵌套
def outer(): def inner(): print('inner') def inner2(): a+=1 #不可变数据类型的修改 print(a,b) print('inner2') inner2() inner() outer()
def outer(): a =1 def inner(): b =2 print(a) print('inner') def inner2(): a+=1 print('inner2') inner2() inner() print('**a**:',a) outer()
a =1 def outer(): a=1 def inner(): b=2 print(a) print('inner') def inner2(): nonlocal a a+=1 inner2() inner() print('**a**:',a) outer() print('全局:',a)
7,作用域链
a =0 def outer(): def inner(): def inner2(): print(a) inner2() inner() outer()
def func(): print(123) func2 =func func2()
def func(): print(123) func() #函数名就是内存地址 func2 = func #函数名可以赋值 func2() l = [func,func2] #函数名可以作为容器类型的元素 print(l) for i in l: i()
def func(): print(123) def wahaha(f) f() wahaha(func)
def func(): print(123) def wahaha(f) f() return f qqxing =wahaha(func) qqxing()
8,闭包:嵌套函数,且内部函数要调用外部函数的变量
def outer(): a =1 def inner():#--->inner是一个闭包 print(a) print(inner._closure_) outer
def outer(): a =1 def inner():#--->inner是一个闭包 print(a) return inner outer inn =outer() inn()
def get_url(): urlopen('http://www.xiaohua100.cn/index.html').read() def inner(): ret = urlopen(url) print(ret) return inner get_func =get_url() get_func()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python:函数
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash