首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有类似于c#的python装饰器?

有没有类似于c#的python装饰器?
EN

Stack Overflow用户
提问于 2012-11-07 19:54:25
回答 3查看 2K关注 0票数 15

我包装了对API的调用,我的大多数方法在它们的第一行中都有:

代码语言:javascript
复制
if ( !Gree.Authorizer.IsAuthorized() )
{
    return;
}

在python中,我会用@login_required之类的东西来装饰这些方法。

您将使用什么来重构c#中的这种类型的逻辑

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-07 20:08:04

您正在寻找一种称为面向方面编程的更通用编程方法的子集。

C#似乎通过几个库来支持它,多亏了CLR的一些特性,人们也可以推出自己的库。请参阅Aspect Oriented Programming using .NET,它涵盖了C#的基本原理(我链接了文章中讨论PostSharp细节的部分,但如果您正在寻找像PostSharp这样的现成解决方案,那么其余部分也同样有趣,正如另一个答案中所提到的那样)。

票数 6
EN

Stack Overflow用户

发布于 2012-11-07 19:59:45

您可以使用任何用于C#的面向方面编程工具,比如this one。

使用PostSharp,软件开发人员可以将实现模式封装到称为方面的类中,并使用自定义属性将这些方面应用于他们的代码。

票数 4
EN

Stack Overflow用户

发布于 2012-11-07 20:17:11

我对python并不熟悉,但您似乎在寻找“属性”(MSDN) (它与Java非常相似)。

具体地说,.NET提供了"AuthorizeAttribute",它可以做您想要做的事情(甚至可能更多)。虽然你不是在.NET下,但这可能会给你正在尝试实现的实现带来一些启发。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13269246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档