python - 这个装饰器怎么写?
问题描述
请帮忙 。如何编写此装饰器(如果验证器返回“True”,则使用验证器将 args 发送到 func :
#define decorator here ...
def validator(x):
return x>=0
@decorator(validator)
def f(x):
return x**0.5
print(f(4)) #should print 2
print(f(-4)) #should print error
解决方案
这是装饰器定义
def decorator(method):
def wrapper(func):
def inner_wrapper(x):
if method(x):
return func(x)
else:
raise Exception
return inner_wrapper
return wrapper
def is_positiv(x):
return x > 0
@decorator(is_positiv)
def f(x):
return x**0.5
这是关于 python 中的装饰器的一些文档(https://realpython.com/primer-on-python-decorators/)
最良好的问候
推荐阅读
- ruby-on-rails - 在 Rails 中使用 submit_tag 重定向到新视图
- swift - OSX: detect 'restricted' filesystem flag programmatically
- javascript - regex non converting character after symbol to upper case
- ios - UIWebView swift中的自定义视图
- drupal-7 - Drupal Services Plugin ignoring multi-value fields
- forms - Powerapps - 在开始时将变量设置为 SharePoint 用户列
- iis - 将 DataProtectionProvider 配置为适用于 IIS、IIS Express 和应用程序的自托管实例
- c++ - 我可以用三进制初始化 char[] 吗?
- android - Cordova - 由于联系权限,Android 应用程序在启动时崩溃
- sql - SSRS关于参数中的多个值的问题