首页 > 代码库 > python函数学习

python函数学习

与其他语言不同,在这里函数也是可以作为参数被调用的(书上称为“一等公民”)

技术分享

配合参数收集关键字更见笑!

技术分享

  • 函数内部还可以定义函数
  • 内部函数可以看做一个闭包(闭包是一个可以由另一个函数动态生成的函数,并且可以改变和存储函数外创建的变量的值)???
  • 匿名哈数lambda(),用来代替小函数,定义回调函数???

生成器

这绝对是一个超级好用的东西。python有一些自带的生成器函数,如range()

技术分享

还可以定义自己的生成器函数,不同之处其返回语句由yield完成。

装饰器

本质:把一个函数作为输入并且返回另外一个函数。

在不影响源代码的前提下,可以增加一些想要的输出。常见的是:增加依据调试声明,以查看传入的参数

如:可以自己编写一段代码,输出源代码包含的函数,函数参数,以及参数调用过程,输出结果等信息。

通常使用一下python技巧:

  • *args, **kwargs
  • 闭包
  • 作为参数的函数

技术分享

另外也可直接在要装饰的函数前添加装饰器名字 @decorator_name:

技术分享

同一个函数可以由多个装饰器,靠近函数定义def的装饰器最先执行,然后依次向上。但是任何顺序都会是相同的结果。(装饰器永远是不会改变原代码的

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

python函数学习