show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次了解到函数(fun)是一个套路
- 但是落实到代码上是一个对象
- 这个fun对象里面有个
__code__
对象 - 这就是code object
- code object里面有这个函数的各种信息
- 函数名
- 内部变量数量和元组
- 字节码
- 既然函数本质上是一个对象
- 那么可以把函数作为实参来传递么?
- 这里的其实相当于
- 如果是自定义的函数呢?
- 自定义函数也是可以的
- operate的函数三个参数
- sum
- 3
- 4
- 调用operate
- 三个形参赋值
- f = sum
- a = 3
- b = 4
- CALL的FUNCTION是sum
- 也就是sum(3,4)
- 然后返回
- 函数这个对象有什么不同之处呢?
- 函数式可以调用的
- 一般变量返回False
- 可调用的函数返回True
- 这次我们研究了函数作为参数
- 函数本质上是一个函数对象
- 是一个callable的对象
- 也有类型、地址
- 我们把函数作为实参传进去之后
- 可以函数中完成调用
- 这某种程度实现了抽象
- 具体做什么操作是由函数参数决定
- 我可以访问别的模块的参数么🤔
- 我们下次再说👋