装饰一下你的Python函数吧~
作者:互联网
Paradoxical在敲代码的时候想知道函数的运行时间,于是写了以下的代码。
但是这样每次都要多写几行代码感觉有点麻烦,有没有简便点的方式呢,Paradoxical请教了小哥哥?
惨绿青年:当然有啦,python的装饰器就可以实现相关功能。
我:装饰器是啥鸭?
惨绿青年:装饰器就是为函数添加额外功能的代码。利用装饰器,只需一行代码就可以实现计算运行时间的功能。
惨绿青年:在说装饰器之前,先说下函数的相关知识。之前说过,python的一切都可以看作是对象,所以函数也看作是对象。
惨绿青年:函数里面也可以定义函数,而且可以将里面的函数返回。
惨绿青年:所以可以定义一个外层函数,然后在里面定义一个内层函数,在内层函数里面编写相关代码即可。下面是一个简单的装饰器栗子,添加运行另一个函数前打印hello的功能。
惨绿青年:这样可以不太直观,有点难理解,它实际上是这样的。
我:哦!原来是这样,我赶紧试试~
在Paradoxical强大的动手能力下,一下子就完成了。但是问题来了,要是函数有参数呢?
我:小哥哥,要是函数有参数的话该怎么办鸭?
惨绿青年:修改一下代码就可以了。
我:那个*args和**kwargs是什么鸭?怎么从来没见过?
惨绿青年:*args是不定长参数,**kwargs是关键字参数。此外,函数的参数还能设置默认值,称为默认参数。
惨绿青年:参数的顺序也有规定,顺序是“必需参数→默认参数→不定长参数→关键字参数”。这是为了防止默认参数和关键字参数混淆。
惨绿青年:回到之前的装饰器,因为不知道传入的函数会定义什么参数,所以传入不定长参数和关键字参数即可,python会自动把获取的参数传进入。
我:今天的知识点好多鸭,我得多加练习才行!
标签:青年,惨绿,Python,代码,参数,装饰,函数 来源: https://blog.51cto.com/15072921/2582111