问题标签 [class-decorator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
137 浏览

python - 从装饰类访问静态字段

完整代码示例:

尝试执行测试时,出现错误:

是否可以从装饰类访问静态字段?

0 投票
1 回答
57 浏览

python - Python 类装饰器“self”似乎是错误的

我正在尝试弄清楚如何__setattr__使用类上的装饰器来更改类的功能,但是在尝试访问self替换__setattr__. 如果我将问题行更改为 not access self,例如将其替换为val = str(val),我会得到预期的行为。

我在这里的其他问题中看到了类似的问题,但他们使用了不同的方法,其中一个类被用作装饰器。我下面的方法感觉不那么复杂,所以如果可能的话,我很乐意保持这种状态。

为什么a不能在self/foo我期望的地方定义?

0 投票
0 回答
65 浏览

python - 如何在构造函数中取消类装饰器

让我们以下面的类装饰器示例(来源http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4):

StockItem构造函数被调用两次,第二次我希望 @valid_string 装饰器以某种方式被取消(我不想再更改名称属性的值)。

0 投票
2 回答
793 浏览

typescript - 类装饰器上的打字稿文档-返回“类扩展构造函数{}”的函数

因此,我正在尝试建立对 Typescript 装饰器的理解,并且我一直停留在给出的关于类装饰器的示例上。给出的示例展示了如何通过 function(){} 形成类装饰器。

是什么:

函数如何返回扩展参数(称为“构造”)的“类”关键字?我感到很困惑。

这是原始来源的链接(只需滚动到类装饰器的中间部分):https ://www.typescriptlang.org/docs/handbook/decorators.html

感谢任何帮助!

0 投票
2 回答
1851 浏览

python-3.x - Python子类方法从超类方法继承装饰器

我有一个超类,它有一个retrieve() 方法,它的子类每个都实现自己的retrieve() 方法。我希望每个retrieve() 方法都被修饰以在它接收到相同的参数时缓存返回值,而不必在每个子类中修饰该方法。

装饰器似乎不是被继承的。我可能会调用超类的方法来设置缓存,但目前我的超类引发了我喜欢的 NotImplemented 异常。

实际结果:

期望的结果:

0 投票
2 回答
1356 浏览

python - 在 Python 中装饰方法期间传递“self”参数

我想创建装饰器来显示哪些参数被传递给函数和方法。我已经编写了函数的代码,但是方法让我很头疼。

这是按预期工作的函数装饰器:

代码执行的输出:



我已经为方法尝试了完全相同的装饰器:

输出是:

我的装饰器没有将参数“self”传递给该方法。
我想编写第二个装饰器“method_log”,它的工作原理与“function_log”非常相似。对于代码:

我想要输出:

0 投票
1 回答
162 浏览

javascript - 实现 JS 装饰器来包装类

我正在尝试包装类构造函数并使用类装饰器注入一些逻辑。在我尝试扩展包装类之前一切正常:扩展类在原型中没有方法。

0 投票
2 回答
56 浏览

python - 类的索引成员作为python中的列表

假设我有一个简单的类

我现在对生成一个类感兴趣,我可以在其中将一个可迭代的 for 传递给初始化程序并返回一个我可以访问成员bar的实例,并且喜欢大小为 的迭代,即Fooxybar

我知道一个人可以轻松做到

但这感觉很冗长,可能效率不高。我可以粗略地想象一个带有 numpy 结构化数组的解决方案,但我只是好奇是否有任何标准解决方案。也许使用元类。谷歌搜索主要是关于如何获取一个类或类似类的所有成员的列表的结果。

如果有人甚至可以提出一种允许索引对象或其成员的解决方案,那foo 伟大的。

0 投票
2 回答
38 浏览

python - 在类实例和类定义上调用类装饰器有什么区别?

为什么test.methodtest_wrapped.method返回不同的结果?
似乎 in 的第一个参数test_wrapped.methodself,而它不是 for test.method。为什么它从一个到另一个不同?

0 投票
1 回答
96 浏览

python - 正则表达式匹配类方法的动态装饰器

我想在委托类实现等情况下简化方法装饰。

  • 假设有十分之一方法的第 3 方“服务”类
  • 你想重写很多方法只是为了能够装饰它们
  • 您创建一个委托子类并覆盖选定的方法

这种情况会导致类似的情况:

这个解决方案似乎效率不高。出于这个原因,可以实现这样的事情:

这个想法是“复制”和装饰从基类中选择的正则表达式函数,而不必覆盖它们。此实现适用于我的特定场景。

我对python很陌生,所以我不确定这是一种好方法还是一种不好的做法。

  • 有什么理由不应用这种解决方案吗?
  • 是否有提供类似功能的现有 python 包