这篇教程python中写得很实用,希望能帮到您。
一、表示修饰符。可以在模块或者类的定义层内对函数进行修饰。出现在函数定义的前一行,不允许和函数定义在同一行。 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的同名函数或其他可调用的东西(如果返回不是一个可调用的对象那么会报错)。 例1: def funA(desA): print("It's funA") def funB(desB): print("It's funB") @funAdef funC(): print("It's funC") 运行结果: It's funA
例2: 可以看出,该例子中@test等价于 test(xxx()),但是这种写法你得考虑python代码的执行顺序。 def test(func): print("a") return func() @testdef xxx(): print('Hello world!') 运行结果: a Hello world!
例3: 为更深刻理解该用法,来个复杂点的嵌套型。 def funA(desA): print("It's funA") print('---') print(desA) desA() print('---') def funB(desB): print("It's funB") @funB@funAdef funC(): print("It's funC") 运行结果: It's funA --- <function funC at 0x00000252D2545550> It's funC --- It's funB
解析: - @funB 修饰装饰器@funA,@funA 修饰函数定义def funC(),将funC()作为funA()的参数,再将funA(funC())作为funB()的参数。 执行的时候由上而下,先执行funA(funC()),再执行funB(funA(funC()))。注意,funC()并不执行,除非funA()函数中给出了执行funA()的代码。
- 打印desA,其传的是funC()的地址,即desA现在为函数desA()。 执行desA()即执行funC(),desA=desA()=funC()。
二、表示矩阵乘法。 Playwright元素截图并保存至allure的实现示例 Python JSON模块的使用详情
|