python - 将参数传递给不同类中的装饰器
问题描述
我想看看是否可以将参数传递给位于脚本中的装饰器,该脚本从存在该参数的不同脚本中调用。例如,假设我有script_1.py
哪个正在调用该方法:
import function_1
param_1 = 5
result = function_1(arg1, arg2)
现在这个函数位于script_2.py
装饰器的位置param_1
@decorator(param_1)
def function_1(arg1, arg2):
#do some stuff
那么有什么方法可以调用带有装饰器的函数script_1.py
并传入param_1
装饰器中script_2.py
吗?
解决方案
装饰器在def
语句被评估后立即运行。
@decorator(param1)
def function_1(arg1, arg2):
...
相当于
def function_1(arg1, arg2):
...
function_1 = decorator(param1)(function_1)
此代码在您执行import
语句时运行,而不是在您调用function_1
.
推荐阅读
- algorithm - 计算给定代码的时间复杂度的问题
- android - Searchview 过滤器不适用于包含已解析 JSON 的列表,但适用于非 JSON 列表
- php - PDO:使用子字符串作为标准来获取行数
- python - 在 EMR 中运行 Jupyter notebook 时没有名为“pyspark”的模块
- python - 使用 Python 将 Excel DATE(不是日期时间)数据插入 SQL Server
- java - Maven发布插件配置及示例
- java - 如何在 swagger 模型中创建嵌套对象
- c++ - 如何让用户等待才能再次使用某个功能?
- scala - 将 Akka HTTP 重定向到 HTTPS
- haskell - 从generics-sop的ConstructorInfo中提取嵌套类型信息