编程离不开函数。Python的函数除了具备传统意义上的函数特征外,又被赋予了其他一些特性,让它更灵活、更强大。这篇文章结合之前我推荐的一本Python宝书,又添加一些我的实践和理解,总结了深入理解Python函数的9个黄金法则。

1 函数是对象

这意味着,yell 能赋值给 bark,如下所示:

bark轻松被赋予yell的功能

2 删除函数

函数既然是对象,我们可以删除函数,如下:

但是bark还是能够正常调用:

3 这说明:函数名字和函数本身完全是分开的

4 函数既然是对象,就可以结合数据结构使用

5 函数既然是对象,就可以作为函数参数

6 函数既然是对象,就可以在嵌套在函数体内

如下所示,函数内再定义2个函数对象

7 内层函数对象能够记忆住父函数的变量

官方术语:闭包,记住这个例子:

8 所有的函数都是对象,但是所有的对象并不一定都是函数

9 对象成为函数需要实现__call__协议

实现__call__协议后,plus_3对象便成为函数,可以plus_3(4)了!强大。

以上就是9个灵活使用函数的黄金法则,希望对你有用。

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群554839127,加入微信群请扫码:

【Python】深入理解Python函数的9个黄金法则相关推荐

  1. 【Python】理解Python(1) - Python数据模型,is关键字,类型

    文章目录 Python的数据模型 对象的标识 对象的类型 对象的值 is 关键字 判断一个变量是否指向函数 types模块中定义的类型 本文是作者对Python官方文档的理解和试验结果,不保证技术准确 ...

  2. python processpoolexecutor_理解Python的PoolExecutor

    Demo代码和引用知识点都参考自<理解Python并发编程一篇就够了|PoolExecutor篇>--董伟明或作者个人公众号Python之美, <Python Cookbook> ...

  3. 【Python】理解Python(2) - help() 函数? or 类?

    文章目录 help() 函数 help()详解 help不是一个函数 help的导入过程 object.\_\_call__(self [, args ...]) 函数 site.py模块 与 -S ...

  4. Python - 深刻理解Python中的元类(metaclass)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 1.类也是对象 在理解元类之前,你需要先掌握Pyth ...

  5. python legb_理解 Python 的 LEGB.

    名字空间 Python 的名字空间是 Python 一个非常核心的内容. 其他语言中如 C 中,变量名是内存地址的别名,而在 Python 中,名字是一个字符串对象,它与他指向的对象构成一个{name ...

  6. python nonetype_理解Python中的NoneType对象

    编译:老齐 在C.Java等类型的语言中,都有null,它常常被定义为与0等效.但是,在Python中并非如此.Python中用关键词None表征null对象,它并不是0,它是Python中的第一类对 ...

  7. 我对python的理解_python高级函数以及我对python的理解

    常见的高级函数:lambda.map.reduce.filter.list comprehension lambda 匿名函数,限制一个表达式 m = lambda x,y:x+y # 5 m(2,3 ...

  8. python self理解_Python列表理解

    python self理解 In our previous tutorial we learned about Python Sort List. In this tutorial we will l ...

  9. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

最新文章

  1. 动机模型_一个模型教你如何激发学习动机
  2. TensorFlow超级指南 | 你能想到的TF教程和资源都在这里(附链接视频)
  3. 一个完整项目的学习--
  4. JavaScript(二)——数据类型、流程控制、Map和Set
  5. latex 小于_一份菜鸡的Latex课堂作业works--(ii)
  6. oracle的pdb,oracle pdb基本管理
  7. 数据库之ODPS中sql语句指南
  8. 修复SQL Server 2016年Microsoft.AnalysisServices.AdomdClientUI.dll程序集错误的前4个选项
  9. 【Windows Phone设计与用户体验】关于移动产品的Loading用户体验的思考
  10. vue-router 修改或添加新参数
  11. weblogic运行但局域网内无法访问控制台
  12. 手机型号大全_《华为手机型号大全》值得收藏
  13. 银河麒麟系统安装字体
  14. Charles的使用方法
  15. Python学习笔记(15)-Python代码转换为exe可执行程序详解
  16. gnome-screenshot截屏快捷启动
  17. 微机原理 单片机笔记
  18. 动手开发一个有用的 ABAP ALV 工具 - 查看指定用户的 ABAP 传输请求试读版
  19. 新月,上弦月,满月,下弦月的区别
  20. c语言英文分词,英文分词的算法和原理

热门文章

  1. 为什么监听不到开机广播action.BOOT_COMPLETED
  2. 如何获取空对象的类型
  3. EF 如何更新多对多关系的实体
  4. 自定义MyBatis
  5. 深度优先 广度优先
  6. CF633C Spy Syndrome 2
  7. 牛客网Java刷题知识点之字节缓冲区练习之从A处复制文本文件到B处(BufferedReader、BufferedWriter)、复制文本文件的原理图解...
  8. readelf源码学习
  9. php设置错误,错误记录
  10. Entity Framework 5.0基础系列