【问题标题】:How to get warnings for wrong return types in PyCharm?如何在 PyCharm 中获取错误返回类型的警告?
【发布时间】:2018-11-19 23:59:08
【问题描述】:

在 Python 3.7.1 项目中,定义的方法的返回类型与结果类型不兼容。但是,IDE PyCharm 2018.2 没有给出任何警告。这是一个代码示例:

import numpy as np
from dataclasses import dataclass
import typing

# Definitions:
@dataclass(order=True)
class Theta:
  vector: np.ndarray

def a(self) -> typing.AnyStr:
    return self.vector.size

def b(self) -> str:
    return self.vector.size

# Client code:
x = np.array([1, 2])
s = Theta(x).a().capitalize() # runtime errors
u = Theta(x).b().capitalize()

有没有办法在定义和客户端代码中强制执行类型警告?

注意:关于 SO 上的 Python 类型提示有几个问题,例如,Pycharm strange warning when type hinting。然而,他们似乎专注于不同的方面。

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

    typing.AnyStr 是一个类型变量。这意味着它将从传递的参数或包含的类中推断出来。在您的情况下,无论是类还是方法都不使用此类型变量,因此推断 a 返回类型为 Any

    【讨论】:

    • 另一种方法呢,签名-> str?这与类型警告的情况相同。
    • @Tupolev._ Ctrl+单击size 将打开size 定义,您可以看到没有提及size 的类型。类型提示github.com/numpy/numpy-stubs 目前正在开发中。
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2020-05-22
    • 2014-12-05
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 2011-10-10
    相关资源
    最近更新 更多