类型暗示使用一种方法返回基于__init__参数的值的方法

发布于 2025-02-03 05:05:34 字数 485 浏览 3 评论 0原文

给定具有一个函数的自定义类,该函数返回一个取决于传递给 init 的方法的值,我该如何告诉MYPY函数返回什么?这就是我到目前为止的目的,但由于多种原因无法使用,例如MyClass似乎在类型提示中无法订阅。

_Var = TypeVar("_Var")

class MyClass:
    def __init__(self, method: Callable[[Any], _Var]) -> None:
        ...

    def run(self, *args, **kwargs) -> _Var:
        ...


def a(method, *args, **kwargs) -> MyClass[int]:
    k = MyClass(method)
    ...
    return k

instance = a(...)
value = instance.run()  # int
        

Given a custom class with a function that returns a value dependant on a method passed to init, how can I tell mypy what the function returns? This is what I have so far, but it doesn't work for multiple reasons, like the fact that MyClass doesn't seem to be subscriptable in type hints.

_Var = TypeVar("_Var")

class MyClass:
    def __init__(self, method: Callable[[Any], _Var]) -> None:
        ...

    def run(self, *args, **kwargs) -> _Var:
        ...


def a(method, *args, **kwargs) -> MyClass[int]:
    k = MyClass(method)
    ...
    return k

instance = a(...)
value = instance.run()  # int
        

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文