相关疑难解决方法(0)

Python 键入:将“**kwargs”从一个函数复制到另一个函数

这是 Python 扩展或包装函数中的常见模式,用于**kwargs将所有关键字参数传递给扩展函数。

即采取

class A:
    def bar(self, *, a: int, b: str, c: float) -> str:
       return f"{a}_{b}_{c}"
   

class B(A):
    def bar(self, **kwargs):
        return f"NEW_{super().bar(**kwargs)}"


def base_function(*, a: int, b: str, c: float) -> str:
    return f"{a}_{b}_{c}"


def extension(**kwargs) -> str:
    return f"NEW_{base_function(**kwargs)}"
Run Code Online (Sandbox Code Playgroud)

现在调用extension(not_existing="a")orB().bar(not_existing="a")会导致TypeError, 可以被静态类型检查器检测到。

如何在运行代码之前注释我的extensionB.bar以便检测到此问题?

此注释也有助于 IDE 为我提供有关extensionor 的正确建议B.bar

python python-typing

6
推荐指数
1
解决办法
2732
查看次数

标签 统计

python ×1

python-typing ×1