decorator相关内容

Django自定义装饰器重定向问题

我尝试用Django编写一个定制的装饰器。 我想将用户重定向到自定义登录页面,如果他们没有通过该页面登录。 我已经编写了装饰器并对其进行了调试。虽然如果用户没有登录,它会工作得很好,但在用户登录后,它会给出以下错误: The view APPNAME.views.home didn't return an HttpResponse object. 可以在下面找到我的代码。为什么我的装饰者 ..
发布时间:2022-07-12 15:46:06 其他开发

用于保存有关类的元数据的修饰符的替代方案

我正在编写一个GUI库,我想让程序员提供有关他们的程序的元信息,我可以使用这些信息来微调图形用户界面。为此,我计划使用函数修饰符,例如: class App: @Useraction(description='close the program', hotkey='ctrl+q') def quit(self): sys.exit() 问题是此信息需要绑定 ..
发布时间:2022-07-12 15:39:59 Python

Python装饰符*args和**kwargs

我是一个全新的编程新手,我一直在尝试尽可能多地吸收。你们贴的很多技术解释我都听不懂,所以请尽量用简单的英语。我了解装饰器函数如何工作的机制,但我的问题是遵循代码逻辑-特别是为什么我们必须添加*args和**kwargs。我们传递给包含参数的函数的修饰器函数的任何内容都将始终传递给包装器函数,因为它嵌套在修饰器中,这样的说法正确吗?这就是我在这里错过的。我不明白原始函数中的参数是如何传入的。 ..
发布时间:2022-07-12 15:33:47 Python

CDI从另一个罐子装饰服务

我想使用CDI的Decorator模式来增强服务提供的业务逻辑。我试图修饰的服务位于另一个模块中(用maven术语来说),因此是另一个JAR。例如,提供的服务在模块com.acme.provider中,而装饰符在com.acme.consumer中,紧挨着服务使用者。 我的服务按原样注入,没有任何修饰。 装饰符在使用者模块内的beans.xml中声明。 我提供了一个工作示例her ..
发布时间:2022-04-13 20:28:23 Java开发

如何通过flask.Blueprint.route修饰器传递类本身?

我正在使用Flask和Python2.7编写我的网站的后端,遇到了一些问题。我喜欢使用类来封装我的函数,它使我的事情变得整洁,并帮助我保持一切模块化。然而,我遇到的一个问题是,用于布线的装饰者烧瓶不能保留自变量。我使用它来访问它所在的类的loadDb方法。请参见下面的内容。有谁知道为什么会发生这种情况,知道我如何解决这个问题,或者是否有办法解决这个问题? class Test(object) ..
发布时间:2022-04-07 13:24:13 Python

函数的文本修饰符,而不是方法。可能?

我正尝试在未包含在类中的函数中添加自定义类型脚本修饰符,但似乎无论我执行什么操作,编译器都在抱怨。 有什么想法吗?有可能吗? 推荐答案 在函数中添加自定义文字修饰符 不是原始函数。主要问题是处理函数的hoisting。任何将一个函数包装在另一个函数中的尝试都会失败。 支持目标 Decorator是一种特殊类型的声明,可以附加到类声明、方法、访问器、属性或参数。修 ..
发布时间:2022-04-07 13:22:36 其他开发

用于字段的Python修饰器

我知道根本没有这回事。这就是为什么我在找一些很好的同类产品。上这节课: class MyClass: a = 5 b = "foo" c = False 我希望将字段a和b“分组”在一起,以便能够以某种方式迭代仅来自该组的成员。因此,如果有某种字段修饰符就好了,比如: class MyClass: @bar a = 5 @bar b = ..
发布时间:2022-04-07 13:18:01 Python

巨蟒装饰器只是句法上的糖吗?

可能的重复项: Understanding Python decorators 我对使用Python修饰符还很陌生,根据我的第一印象,它们只是语法上的糖。 有没有更深入的用法用于更复杂的用途? 推荐答案 是的,它是句法上的糖。没有它们,一切都可以实现,但只需多几行代码。但它可以帮助您编写更简洁的代码。 示例: from functools import wra ..
发布时间:2022-04-07 13:11:36 Python

如何在修饰器中使用命名参数?

如果我有以下函数: def intercept(func): # do something here @intercept(arg1=20) def whatever(arg1,arg2): # do something here 我希望仅当arg1为20时才触发截取。我希望能够将命名参数传递给函数。我如何才能做到这一点? 这里有一个小代码示例: def in ..
发布时间:2022-04-07 13:10:20 Python

追溯显示,直到装饰者

这个漂亮的小Python装饰器可以配置地禁用装饰函数: enabled = get_bool_from_config() def run_if_enabled(fn): def wrapped(*args, **kwargs): try: return fn(*args, **kwargs) if enabled else None ..
发布时间:2022-04-07 13:05:18 Python

Python中的修饰函数始终返回NONE

我对Python中的装饰符有一个奇怪的问题。基本上,我试图包装一个函数,这样它就可以为每个请求创建和删除游标(不要问--这只是一个示例,对于演示这个问题很有用!)我还有其他打算)。 这里有一个示例: class DB(object): """Our DB methods and connections""" def __init__(self): se ..
发布时间:2022-04-07 13:02:49 Python

如何重写现有对象的方法?

该对象是用reify创建的,我需要重写它的一个方法。我发现的唯一方法是使用经典的OO修饰符和reify的另一种用法。还有别的办法吗? 推荐答案 恐怕您必须制作一个修饰器,因为Clojure没有默认情况下将一个对象的行为委托给另一个对象的内置构造(我认为这称为原型继承)。 但这并不意味着它必须是单调乏味的--您可以使用宏和反射来自动化大部分工作。以下是概念的证明: (defm ..
发布时间:2022-04-07 12:58:44 其他开发