python 装饰器调用其他类中的方法

Posted ioan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 装饰器调用其他类中的方法相关的知识,希望对你有一定的参考价值。

场景:

  做自动化是,每次都需要调用登录方法,代码重复比较多,在这种场景下,将登录功能抽取为装饰器demo

class Test:
  data= get_yaml_date_by_fillter(filename =‘warehouse_case.yaml‘,filter=‘whpage‘)

  @ddt.data(*data)
  @login
  def test_OpenWareHouse_Info(self,data):
   try:
   for key in data:
   result = WarehouseInfo.openWareHouseInfo(self)
  if result == data[key][‘assert‘]:
   logger.info(‘%s 测试结果:%s‘ % (key, ‘通过‘))
   self.assertEqual(result,data[key][‘assert‘])
   except:
   raise

 

def login(func):
‘‘‘
登录功能抽取为装饰器
:param func:
:return:
‘‘‘
# 获取正确登录密码账号登录系统
login_data = get_yaml_date_by_fillter(filename=‘login.yaml‘, filter=‘login‘)[2]

def wrapper(self,*args):
# 调用登录方法
result = LoginModel.login_success(self,login_data[‘login_case_003‘])
if result != None:
return func(self,*args)
else:
print(‘登录失败‘)

return wrapper

 

以上是关于python 装饰器调用其他类中的方法的主要内容,如果未能解决你的问题,请参考以下文章

Python 装饰器装饰类中的方法(转)

python 类中的某个函数作为装饰器

python中装饰器装饰类中的方法

在类中的所有实例方法自动调用之后调用方法:元类还是装饰器?

python_如何在类中定义装饰器

类中的Python装饰器