![5356bd81c17f3325db90be51b5cf41dd.png](https://i-blog.csdnimg.cn/blog_migrate/96aa5144edd15375f08c2cc88d0cb22a.jpeg)
装饰器之函数即变量
1、在第一次执行中,由于bar函数未在python内存中定义,所以不能正常执行
def foo():print('in the foo')bar()foo()
![3d2fbada8f0eb279b87cb275b7497f7c.png](https://i-blog.csdnimg.cn/blog_migrate/84393fd466c099d91fadf1003e987b60.jpeg)
2、由于bar和foo使用之前已经在python内存中被定义,在调用时已经被python进行了解释,所以不管函数是谁在前或者在后定义,都能够正常执行。
def bar():print('in the bar')def foo():print('in the foo')bar()foo()————————————————————————————————————def foo():print('in the foo')bar()def bar():print('in the bar')foo()
![49ec1c9ac387d0e03ead78f19be635a5.png](https://i-blog.csdnimg.cn/blog_migrate/d06a57f7de7389973ef9e6c1f94e7465.jpeg)
![80a4ebf63d5f52b05246c7db822f6470.png](https://i-blog.csdnimg.cn/blog_migrate/8070ee52c8e5f53e407bac4add17fc41.jpeg)
3、bar是先被执行的,而在python内存中bar为被定义,所以无法执行
def foo():print('in the foo')bar()foo()def bar():print('in the bar')
![1cc0d36190b0f84fed568255327cc1ca.png](https://i-blog.csdnimg.cn/blog_migrate/18c78b431a17d88013d6f5d8e513d961.jpeg)
python变量内存回收机制
- Python内存回收的基石是引用计数,“当一个对象的引用被创建或复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1”,如果对象的引用计数减少为0,将对象的所占用的内存释放。
结语
感谢阅读,欢迎在评论区中发表自己不同的观点,若有其他问题请在评论区留言,喜欢的朋友请多多关注转发支持一下。
![d58f0c54d288a342d44b8e2df4cb4745.gif](https://i-blog.csdnimg.cn/blog_migrate/9fcd0aa160b08130fe07e6fb5734f1e4.gif)