【发布时间】:2010-11-26 08:15:09
【问题描述】:
是否有 Python 的函数装饰器的 C# 类比?感觉使用属性和反射框架是可行的,但我没有看到在运行时替换函数的方法。
Python decorators 通常是这样工作的:
class decorator(obj):
def __init__(self, f):
self.f = f
def __call__(self, *args, **kwargs):
print "Before"
self.f()
print "After"
@decorator
def func1():
print "Function 1"
@decorator
def func2():
print "Function 2"
调用 func1 和 func2 会导致
前 功能一 后 前 功能二 后这个想法是装饰器可以让我轻松地在多个函数的入口和出口处添加常用任务。
【问题讨论】:
-
我发现这是一个关于为什么而不是什么的有趣介绍。 python.about.com/gi/dynamic/offsite.htm?zi=1/…
-
嗯,我希望语言中已经内置了一些东西,但从答案看来,如果不添加新框架就没有直接的方法可以做到这一点。我的项目非常小,所以这样做可能有点矫枉过正。
标签: c# python reflection decorator