python __wrapped__
时间: 2023-10-18 13:04:34 浏览: 154
redis-wrapped-mkstemp:使用Redis生成唯一的文件名(来自rikonor的python redis_wrapped_mkstemp的端口)
`__wrapped__` 是一个特殊的属性,可用于访问被装饰函数的原始函数对象。在装饰器中,当一个函数被其他函数包装时,`__wrapped__` 属性可以用于获取原始函数对象。
举个例子,考虑以下代码:
```python
def decorator(func):
def wrapper(*args, **kwargs):
print("Before function execution")
result = func(*args, **kwargs)
print("After function execution")
return result
return wrapper
@decorator
def my_function():
print("Inside my_function")
print(my_function.__wrapped__) # 访问被装饰的函数对象
```
在上面的代码中,`decorator` 是一个装饰器,它将一个函数包装在内部的 `wrapper` 函数中。通过访问 `my_function.__wrapped__`,我们可以获取原始的 `my_function` 函数对象,即被装饰前的函数。
注意:`__wrapped__` 属性仅在使用 `functools.wraps` 装饰器进行装饰时才可用。这个装饰器会确保原始函数的属性和文档字符串等信息在被包装函数中得以保留。
阅读全文