如何为方法创建装饰器

我想装饰一个简单的方法, 运行 5次: def do_5(f): @wraps(f) def wr(*a,**kw): i = 0 while i < 5: f(a,kw) i += 1 return wr class a(object): @do_5 def f(self, x): print x 然而, 这只使 func 打印 x 实际上 {} 是1 使用 ipdb, 我看到 self 这是第一个, *a 所以我尝试将包装更改为 In [37]: def do_5(f): ...: @wraps(f) ...: def wr(*a,**kw): ...: self, other_args = a[0], a[1:] ...: i = 0 ...: while i < 5: ...: ……

共2个回答,已解决, 标签: python python-2.7 decorator
通过 TypeScript 中的属性装饰器覆盖对象的子属性的 getter 和 setter

我在和装饰师一起玩,以了解他们的局限性和目的。我想创建一个简单的自定义属性装饰器来覆盖对象中的 id 属性。 呼叫: @ 组件 ({.}) 导出类 PageComponent { . 数据: 对象 [] = []; 列: TableColumn [] = []; @ Table ({id: 'mytableid'}) table = 新的 MyTable (这个.数据,这个.列); . } 装饰器: 导出函数表 (选项: 任何) :( 目标: 任何,属性键: 字符串 | 符号) => void { 返回函数 (目标: 任何,属性键: 字符串) { 让 IDgetter = (): string => { 返回选项。id; } 让 IDsetter = (id: string) => { 目标 [属性键]。id = 选项。id; } Console.log (目标、属性键、目标 [属性键] 、选项); //PageComponent,'table',未定义,{id: 'mytableid'} 如果 (删除目标 [属性键].id) { 对象.De fineProperty (目标 [属性键],' ……

共0个回答, 标签: angular typescript decorator