【发布时间】:2018-01-22 01:46:45
【问题描述】:
使用 PyCharm 时,如果我写 np.array(0.0),Pycharm 的代码样式检查会在编辑器中给我警告 Expected type 'Union[ndarray, Iterable]', got 'float' instead。当我写 np.array([0.0]) 时,我没有收到任何警告。
编码时
from scipy.special import expit
expit(0.0)
我得到Expected type 'ndarray', got 'float' instead,而
expit(np.array([0.0]))
解决了。
我认为 Pycharm 的代码风格检查想要告诉我的是存在类型错误的可能性,但我不确定从良好编程的意义上我应该如何应对。 PyCharm 骂我是对的吗?我应该使用长版本还是应该保留短版本以提高可读性和编码速度?
如果我不应该将我的代码更改为长版本 - 我可以摆脱 Pycharm 的代码样式检查警告吗,或者这是一个坏主意,因为它们在其他情况下可能是正确的,我无法调整具体是什么警告?
【问题讨论】:
-
函数
expit需要一个array(list),所以当你传递浮点数0.0你会得到错误。 -
@Stack:我没有收到错误消息。只有来自 PyCharm 的警告。如果你真的运行
expit(0.0),你既不会得到错误,也不会得到警告,只会得到结果。 -
我认为是修改代码还是忽略/禁用警告的问题主要取决于品味和个人喜好。