1.装饰器(decorator)
我用过的装饰器:
- @classmethod 类方法
- @staticmethod 静态方法
- @ddt 数据驱动,进行参数化
- @pytest.fixture 设置夹具
- @pytest.mark.parametrize 数据驱动,进行参数化
- @pytest.mark.success 筛选用例,自定义标签
- @allure.suit 修改测试套件名称
- @allure.title 修改测试用例名称
单函数之间的调用:
def run():
print('is running')
def log(func):
return func
# 调用log函数时,run整个函数本身作为参数
result = log(run) # 这个结果就是run函数对象<function run at 0x000002A3D05D61F0>
result() # 函数本身加上括号就是调用函数
print(result)
运行结果:
嵌套函数之间的调用:
def run():
print('is running')
# 嵌套函数
def log(func):
def wrapper():
return func() # 注意

本文详细介绍了Python中的装饰器和生成器。装饰器如@classmethod、@staticmethod、@pytest.fixture等用于扩展函数功能,方便拆卸。生成器则通过yield实现惰性求值,降低内存消耗,常用于处理大数据和异步接口。示例展示了装饰器在增加函数功能和控制运行时间方面的应用,以及生成器表达式和生成器函数的不同用法。

最低0.47元/天 解锁文章
496

被折叠的 条评论
为什么被折叠?



