本文是学习齐老师的《python全栈工程师》课程的笔记,欢迎学习交流。同时感谢齐老师的精彩传授!
一、课程目标
- 初步理解函数是对象思想
- 掌握嵌套函数的编写方法
- 理解变量作用域
- 了解简单的装饰器及其用法
二、详情解读
1.函数是对象:
- 比较函数和字符串的各种表现
例子:
# 函数也可以作为参数所引用的对象,传给另外一个函数。
def opt(func, iterable):
return [func(i) for i in iterable]
lst = opt(abs, [-1, -2, -3])
print(lst) # [1, 2, 3]
2.嵌套函数:
- 返回函数将函数作为返回值,可以返回内置函数对象,也可以返回自定义函数对象。
例子:
def my_func(bf):
return bf
# 返回内置函数对象 abs
mabs = my_func(abs)
print(abs is mabs) # True 因为它们指向同一个函数对象
print(mabs(-3)) # 3 相当于 abs(-3),
def add(x, y): return x + y
# 返回自定义函数对象
madd = my_func(add)
print(id(madd) == id(add)) # True 等同于 madd is add
print(madd(1,2) # 3
- 函数体内定义另外一个函数:内嵌的函数不会随着外层函数调用而被执行,它也不能在外层函数所在的空间调用,并且,嵌套函数返回内嵌的函数对象,否则内嵌函数无法被调用
例子:
def foo():
def bar():
print('I am in bar')
print