python-decorators 相关问题

在Python中,装饰器是使用特殊语法方便地改变函数,方法或类的函数。装饰器动态地改变功能而不改变被装饰的源代码。

创建不是装饰器的上下文管理器的最简洁方法?

我有一个看起来像这样的函数: 导入上下文库 @contextlib.contextmanager def Special_context(...): ... 屈服 ... 将此用作续集是合适的...

回答 1 投票 0

用装饰函数装饰类的实例方法

我正在使用Python 3.10。考虑这个缓存的玩具示例,它缓存对实例方法的第一次调用,然后在后续调用中返回缓存的值: 导入函数工具 定义缓存...

回答 1 投票 0

我可以在没有装饰器功能的情况下运行装饰函数吗?

如果我曾经在我的函数中使用了装饰器,我如何单独运行这个函数,而不嵌入装饰器功能中? 例如,我有一个函数 printArg,它打印一个参数...

回答 3 投票 0

了解装饰器的细节

让我们假设我们有以下代码: def div(a,b): 打印(a/b) def helper_function(func): def 内部(a,b): 如果一个 假设我们有以下代码: def div(a,b): print(a/b) def helper_function(func): def inner(a,b): if a<b: a,b=b,a return func(a,b) return inner @helper_function # div =helper_function(div) div(2,4) 当我运行此代码时,它返回以下错误: div(2,4) ^^^ SyntaxError: invalid syntax 但是当我激活这条线时: div =helper_function(div) 然后它返回:2.0,但是我需要使用这个语句@,第一个函数的错误部分是怎样的,它看起来像这样:Decorators 请解释一下我做错了什么? 该问题是由于 @helper_function 装饰器放置不正确造成的。装饰器应放置在它们要修改的函数定义的正上方: def helper_function(func): def inner(a, b): if a < b: a, b = b, a return func(a, b) return inner @helper_function def div(a, b): print(a / b) div(2, 4)

回答 1 投票 0

Django视图缓存:如何设置过期时间?

我想缓存一些视图直到月底。 例如 @cache_page_expire_at_end_of_month def some_view(请求): ... 我发现这个老问题 Django per-view caching: set expiry time while...

回答 1 投票 0

带参数的Python装饰器类

我有一个简单的 Python 类,我想用它来将命名钩子添加到我正在编写的程序中。我尝试运行下面的代码并得到以下输出。 代码: 钩子={} 类钩子(对象): ...

回答 1 投票 0

在装饰器中处理异常和其他条件

def test_a(): 尝试: # 如果一切顺利 return {'status': True, 'message': '这是一个问题'} 除了异常 e: 返回{'状态':False,'消息':f'

回答 1 投票 0

需要修饰函数接受与绑定`TypeVar`匹配的参数,而不缩小到该类型

如果我像这样定义我的装饰器 T = TypeVar('T', 绑定=事件) def register1(evtype: Type[T]) -> Callable[[Callable[[T], None]], Callable[[T], None]]: def 装饰器(处理程序): # 重新...

回答 1 投票 0

在python的模块调度中,如何在作业运行后打印下一次运行时间?

在我使用Python的调度模块运行待处理作业后,我想打印一次“下一个作业安排在{next_job_time}”。 此代码每秒打印一条消息,这不是我想要的:

回答 1 投票 0

为什么这个python装饰器拒绝设置setter?

这是我的代码: 类属性: def __init__(self, fget, fset): self.fget = fget self.fset = fset def __get__(self, obj, objtype=None): 返回 self.fget(obj) ...

回答 1 投票 0

“return func”和“return func()”之间的区别

首先,如果这是一个重复的问题,我很抱歉。 假设我有一个简单的 python 代码,名为decorator.py,其中带有装饰器: `def 装饰器(函数): def 包装器(): 打印(“B...

回答 1 投票 0

如何正确向装饰器添加类型提示?

我目前正在编写和学习装饰器(带参数和不带参数)。下面是一个带有一个参数的装饰器示例,它将函数的输出重定向到日志文件。代码...

回答 1 投票 0

抽象@property - 实例化“部分实现”类?

我阅读了关于抽象类 abc.ABC 的非常好的文档。它有这个例子(我为了这个问题而缩短了): 导入 abc 基类(abc.ABC): @财产 @abc。

回答 1 投票 0

Python/SQL模型;添加对 `__init__` 和 `update` 的方法调用的语法不错吗?

我正在尝试使用 SQLModel 作为 ORM。我的一些模型具有自定义验证、计算字段,或者只是我希望在创建或更改它们时发生的事情。我最终使用了以下...

回答 1 投票 0

用于更改参数类型的装饰器的 Python 3 类型提示

我有一个装饰器,它将函数参数强制转换为其类型暗示的类型: 进口检验 从 functools 导入包装 从输入导入 Any、Callable、TypeVar R = TypeVar("R") 定义

回答 1 投票 0

带有 kwargs 移动函数对象的 Python 装饰器类

首先我想说我仍然是一个Python学徒,所以我可能会在这里遗漏一些明显的东西,但是经过对堆栈溢出和一些谷歌文章的一些研究后我找不到确切的...

回答 2 投票 0

如何告诉 PyCharm 类装饰器创建的类变量?

比如说,我有一个装饰器可以使日志记录更加简单: 从输入导入 TypeVar _T = TypeVar("_T", 绑定=类型) def with_logger(cls: _T) -> _T: 从日志记录导入 getLog...

回答 1 投票 0

Python 3.11+ 中的类属性

在Python 3.9中,我们获得了链接@classmethod和@property来明智地创建类属性的能力。 类 Foo: @财产 def实例属性(自身): 返回“常规属性&

回答 2 投票 0

Python 装饰器类型提示

考虑以下代码: 从 functools 导入包装 从 netmiko 导入 ConnectHandler 类 my_class(): def __init__(自身): self.connection = ConnectHandler() 定义

回答 1 投票 0

如何编写依赖于类属性的Python装饰器?或者有更好的方法来解决这个问题吗?

我正在编写一个类,它从 api 获取外部对象,对该对象执行一些处理,公开一些有用的方法,然后将处理后的对象写入数据库。如果...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.