【发布时间】:2026-01-17 23:35:01
【问题描述】:
我有一个包含很多功能的库。我希望与基本方法模式保持一致。我希望所有方法都将上下文作为第一个参数和默认为 0 的关键字 arg。
library_function(context, ..., default=0)
有没有办法可以使用 python 装饰器来转
bobs_function(foo, bar=None)
进入
bobs_library_function(context, foo, bar=None, default=0)
这样做的目的是为声明库函数提供简写。而不是每次都显式添加上下文和默认值。
【问题讨论】:
-
你能再澄清一下吗?你的
bobs_function和bobs_library_function的例子是为了说明函数是如何定义,或者它们是如何调用的?如果它们是这样称呼的,那么您希望context变量来自哪里?也就是说,如果您将bobs_function(foo, bar=None)写为函数调用,那么“正确”的解决方案应该在哪里寻找作为第一个参数插入的context? -
我们的目标是能够创建一个简写来声明测试需要一个上下文和一个默认值。但是您要么必须明确声明该函数将上下文作为输入,要么我必须使用 *args, **kwargs 作为参数,但是将 *args 和 **kwargs 作为输入比手动输入上下文更加繁琐,默认=0
标签: python decorator python-decorators