class A(object):
def wrapped(self, func):
func.string = self.get_something()
return func
def get_something(self):
return "something"
@wrapped
def main(self):
print self.main.string
a = A()
a.main()
TypeError:wrapped()只需要2个参数(给定1个)
答案 0 :(得分:0)
wrapped()
的定义中调用 main()
。调用它时,不会给出self
,因为A
没有wrapped()
的实例可以提供给__init__()
。要做你想做的事,不要使用装饰器。相反,定义一个分配正确属性的self.main()
方法。我不知道为什么你希望它成为self.string
的属性。通常,向函数添加属性不是一个好主意。你已经上课了;用它。只需定义self.main.string
而不是 int splitSize = 5
String s = "aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooo";
for (int i = 0; i < s.length() / splitSize; i++) {
s = s.substring(i, i + 3);
}
。