问题标签 [python-decorators]

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 投票
33 回答
946139 浏览

python - 静态方法和类方法的区别

@staticmethod用 装饰的函数和用 装饰的函数有什么区别@classmethod

0 投票
17 回答
595370 浏览

python - 如何制作函数装饰器并将它们链接在一起?

如何在 Python 中制作两个可以执行以下操作的装饰器?

...应该返回:

我并不想HTML在真实的应用程序中采用这种方式——只是想了解装饰器和装饰器链接是如何工作的。

0 投票
3 回答
40099 浏览

python - 装饰类方法 - 如何将实例传递给装饰器?

这是 Python 2.5,也是GAE,这并不重要。

我有以下代码。我正在装饰 bar 中的 foo() 方法,使用dec_check该类作为装饰器。

执行此操作时,我希望看到:

但我得到TypeError: foo() takes exactly 1 argument (0 given)as .foo(),作为一个对象方法,self作为一个参数。我猜问题是bar当我执行装饰器代码时,实例实际上并不存在。

那么如何将实例传递bar给装饰器类呢?

0 投票
3 回答
6731 浏览

python - Python 装饰器,自己搞混了

我是 Python 装饰器的新手(哇,很棒的功能!),我很难让以下内容工作,因为self参数有点混乱。

当我运行它时,我得到:

对于我做的那条线self.cache[fname] = self.f(self,*args)

问题- 显然,问题在于self缓存器对象而不是 Session 实例,它确实没有pl属性。但是我找不到如何解决这个问题。

我考虑过但不能使用的解决方案——我想让装饰器类返回一个函数而不是一个值(如本文的第 2.1 节),以便self在正确的上下文中进行评估,但这是不可能的因为我的装饰器被实现为一个类并使用内置 __call__方法。然后我想不要为我的装饰器使用一个类,这样我就不需要 __call__ 方法,但我不能这样做,因为我需要在装饰器调用之间保持状态(即用于跟踪self.cache属性中的内容) .

问题- 那么,除了使用全局cache字典变量(我没有尝试,但假设会起作用)之外,还有其他方法可以使这个装饰器工作吗?

编辑:这个 SO 问题似乎类似于Decorating python 类方法,我如何将实例传递给装饰器?

0 投票
10 回答
72298 浏览

python - 关于如何在 python 中使用属性功能的真实示例?

我对如何@property在 Python 中使用感兴趣。我已经阅读了 python 文档和那里的示例,在我看来,这只是一个玩具代码:

我不知道_x用属性装饰器包裹填充物可以获得什么好处。为什么不直接实现为:

我认为,属性功能在某些情况下可能很有用。但当?有人可以给我一些现实世界的例子吗?

0 投票
14 回答
527974 浏览

python - Python 中的“at”(@) 符号有什么作用?

我正在查看一些使用该@符号的 Python 代码,但我不知道它的作用。我也不知道要搜索什么,因为搜索 Python 文档或@包含符号时​​ Google 不会返回相关结果。

0 投票
4 回答
1056 浏览

python - 以@开头的python行

可能的重复:
理解 Python 装饰器

我正在阅读一个 django 应用程序源代码,我在其中找到了这个

以@开头的那一行是什么意思?

0 投票
5 回答
75781 浏览

python - 如何将额外的参数传递给 Python 装饰器?

我有一个像下面这样的装饰器。

我想增强这个装饰器以接受另一个参数,如下所示

但是这段代码给出了错误,

TypeError: myDecorator() 正好接受 2 个参数(1 个给定)

为什么函数没有自动传递?如何将函数显式传递给装饰器函数?

0 投票
6 回答
25584 浏览

python - 如何在python中做一个条件装饰器

是否可以有条件地装饰函数。例如,我想foo()用定时器函数(timeit)装饰函数,只有doing_performance_analysis是True(见下面的伪代码)。

0 投票
7 回答
182703 浏览

python - 带有自参数的类方法装饰器?

如何将类字段作为参数传递给类方法上的装饰器?我想做的是:

它抱怨 self 不存在传递self.url给装饰器。有没有解决的办法?