目录
- 函数补充进阶
- 函数对象
- 函数的嵌套
- 名称空间与作用域
- 闭包函数
- 函数之装饰器
- 函数之可迭代对象
- 函数之迭代器
- 函数之生成器
- 面向过程的程序设计思想
一、函数进阶之函数对象
1. 函数对象
秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋值给给一个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的。
- 函数身为一个对象,拥有对象模型的三个通用属性:id、类型、和值。
#!/usr/bin/env python #-*- coding:utf-8 -*- def foo(): print('from foo') print(id(foo)) # id属性 print(type(foo)) # 类型 func=foo # 将函数名赋值给一个变量 print(foo) # 输出函数的内存地址 print(func) # func变量指向foo函数的内存地址 func() # 加()调用执行 # 结果 ''' 7266512 <class 'function'> <function foo at 0x00000000006EE0D0> <function foo at 0x00000000006EE0D0> from foo '''