猿问

关于修饰类 @class

看到文章(http://mp.weixin.qq.com/s?__biz=MjM5NzU0MzU0Nw==&mid=206275292&idx=1&sn=245ffc6b543c323adc4ed8ac54942e24&scene=5#rd)
修饰类部分,
[1]装饰器无参数:
a.被装饰对象无参数:
1>>>deftest(cls):
2def_test():
3clsName=re.findall("(w+)",repr(cls))[-1]
4print"Call%s.__init()."%clsName
5returncls()
6return_test
7
8>>>@test
9classsy(object):
10value=32
11
12
13>>>s=sy()
14Callsy.__init().
15>>>s
16<__main__.syobjectat0x0000000002C3E390>
17>>>s.value
1832
19>>>
在我的环境执行出错.
提示
TypeError:'sy'objectisnotcallable
py版本如下
$python-V
Python2.7.9
请问什么会出错?正确修饰类的应该如何使用?
UYOU
浏览 321回答 2
2回答

慕娘9325324

@不常用昵称。我来说说,欢迎探讨如果我理解的正确的话,原帖子中“2.装饰类:被装饰的对象是一个类”的装饰类英文原称应该是ClassDecorators。根据语法要求,classdecorators的格式是这样的:#定义defdecorator(C):#processclassCreturnC#使用@decoratorclassC:...参考资料《LearningPython5E》page1277-1278所以,问题中classdecorator的定义是完全错的。应该是如下形式:deftest(cls):classC():#classC的定义填在这里。returnC
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答