栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将装饰器应用于类中的每个方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将装饰器应用于类中的每个方法?

在Python 2.6中,类装饰器无疑是必经之路。例如,这是用于此类任务的非常通用的代码:

import inspectdef decallmethods(decorator, prefix='test_'):  def dectheclass(cls):    for name, m in inspect.getmembers(cls, inspect.ismethod):      if name.startswith(prefix):        setattr(cls, name, decorator(m))    return cls  return dectheclass

而现在,

@decallmethods(login_testuser)class TestCase(object):    def setUp(self):        pass    def test_1(self):        print "test_1()"    def test_2(self):        print "test_2()"

会得到你想要的东西。在Python 2.5或更低版本中,

@decallmethods
语法不适用于类修饰,但是如果使用完全相同的代码,则可以在语句结束
后立即 将其替换为以下
class TestCase
语句:

TestCase = decallmethods(login_testuser)(TestCase)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号