Python中的面向方面的编程(AOP)

发布于 2021-01-29 15:08:14

可能重复:
是否有适用于Python的AOP支持库?

我熟悉AspectJJava语言的扩展。

我想知道Python是否有这样的事情。

不要误会我的意思,我不是说库,而是像AspectJJava一样的语言扩展。

关注者
0
被浏览
76
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python不需要像“语言扩展”之类的东西就可以以面向方面的方式工作。

    那仅仅是由于Python本身的动态机制。Google搜索将产生几个项目-但尽管看起来仅像库,但这是Python所需的全部。

    我没有做这个-这是您可以自省类和方法并在运行时更改它们的事实。当我第一次了解Aspect
    Orientation时,我可以在几个小时内用Python实现一些概念证明-当然,某些现有项目可以提供生产质量的条目。

    但是,正如您所问的那样,有一种Python的“语言扩展”可以用于Aspect
    Orientation:当我进行上面提到的概念验证时,我经常在运行时检查方法的输入参数,以确定是否某些方法是否会受规则影响。

    在Python
    3中,该语言有一个鲜为人知的功能,该功能允许用户注释输入参数和函数或方法的返回值。方面方向库可以利用它来在“加载时间”而不是在每个函数调用时应用其魔力。

    顺便说一句,这是我的快速技巧,以获取将Aspect Orientation与Pure Python结合使用的有效示例。对不起-代码中的注释是pt_BR表示-
    https://bitbucket.org/jsbueno/metapython/src/f48d6bd388fd/aspect.py



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看