【发布时间】:2018-05-24 15:44:33
【问题描述】:
python中的一些函数上面的@error_wrap是什么?
比如下面的代码:
@error_wrap
def disconnect(self):
"""
disconnect a client.
"""
logger.info("disconnecting snap7 client")
return self.library.Cli_Disconnect(self.pointer)
error_wrap 方法:
def error_wrap(func):
"""Parses a s7 error code returned the decorated function."""
def f(*args, **kw):
code = func(*args, **kw)
check_error(code, context="client")
return f
我知道几个 OOP 修饰的 python 函数,(即@staticmethod、@classmethod、@abstractmethod 等),但我找不到关于@error_wrap。
这些代码的等价物是什么?
【问题讨论】:
-
嗯,它不是来自标准库。所以,你必须在你看到它被使用的代码库中搜索它。很可能来自这里:github.com/gijzelaerr/python-snap7/blob/master/snap7/…
-
谢谢,我在内部库代码中找到它(作为一种方法),但它是如何工作的?
-
@BenyaminJafari 这是一个decorator。
-
@AshwiniChaudhary ,好的,我找到了 error_wrap() 方法,但我不知道它在某些功能上作为装饰器是如何工作的
-
@BenyaminJafari 有很多关于 Python 装饰器的问题和文章。在其代码中是否有任何您不理解的具体内容?您还应该在问题正文中发布其代码。
标签: python oop python-decorators