【发布时间】:2011-08-25 23:45:28
【问题描述】:
真的很抱歉这个极其愚蠢的标题,但如果我知道它是什么,我就不会在这里写了(:
def some_decorator( func ):
# ..
class A:
@some_decorator
def func():
pass
@func.some_decorator # this one here - func.some_decorator ?
def func():
pass
some_decorator 装饰 func - 没关系。但是func.some_decorator 是什么以及some_decorator 如何成为func 的成员(或其他?)?
附:我有 90% 的把握,这里有这样的问题(因为这似乎很基本),但我不知道如何搜索它。如果有 exact 重复,我会删除这个问题。
注意:这两个成员函数都命名为func,这不是拼写错误,也不是意外。装饰器用于重载:问题与Decorating method (class methods overloading)有关
【问题讨论】:
-
当你在寻找类似的东西时,试试
dir(),就像dir(func)一样。 -
我知道
dir,这是我想到的第一件事,但我只是把它看作是一种语法,在这样的例子中,没有任何真正的实现,所以@987654332 @ 在这里不工作。还是 10 倍。 -
你真正想做什么? (或者你想理解别人的代码?)
-
好吧,我正在尝试为方法重载添加功能,就像在相关问题中一样,但不仅仅是使用标准语法
@decorator,而是使用此处描述的语法 - 使用@decorator对于第一种方法,然后使用@first_method.decorator。我只是将其视为一种语法,并想理解并尝试实现这样的东西。这似乎有点不必要,但我只是在练习,没什么大不了的。
标签: python python-3.x decorator