【发布时间】:2010-10-13 13:19:46
【问题描述】:
我对 Python 还很陌生,并且无法通过在线搜索找到此问题的答案。
这是一个什么都不做的装饰器示例
def my_decorator(text):
def wrap(f):
# grab magic f.parent_class_object.my_var and append text
def wrap_f(*args, **kwargs):
f(*args, **kwargs)
return wrap_f
return wrap
这是一个示例类
class MyClass:
my_var = []
@my_decorator('sometext')
def my_func()
# do some super cool thing
在我的装饰器中,我想访问MyClass 的类对象并将“sometext”添加到MyClass.my_var 列表中。我的目标是在 模块加载 时使用修饰值填充 my_var,而不是在函数调用时。
有没有一种方法可以让我从 f 导航到 MyClass 以执行此操作?我知道 *args[0] 是 MyClass 的实例,但只有在调用函数时才可用。
【问题讨论】: