PyCharm Type错误消息

时间:2015-07-05 14:45:56

标签: python pycharm

我是一个在PyCharm(Comm.Ed 4.5)下用Python(3.4)尝试ML / DBN的新手。 以下定义

def make_thetas(xmin,xmax,n):
    xs = np.linespace(xmin,xmax,n)
    widths = (xs[1:] - xs[:-1])/2.0
    thetas = xs[:-1] + widths
    return thetas

抛出错误 “类'元组'未定义' sub ',因此' - '运算符不能用于其实例” 在第三行的 - 运算符上(widths = ....) 关于如何在PyCharm下运行此代码的任何想法 - 它在交互式Python窗口中都可以正常工作 THX。

1 个答案:

答案 0 :(得分:0)

致全部,
在G'g之后我发现了一个似乎在PyCharm中工作的解决方法。我说解决方法因为(即使是作为Python新手)我期望Python不需要显式类型转换,尤其是在使用从像Numpy这样的lib导入的数据类型时。

    def make_thetas(xmin,xmax,n):
    xs = np.array(np.linspace(xmin,xmax,n))
    widths = (xs[1:] - xs[:-1])/2.0
    thetas = xs[:-1]+ widths
    return thetas

使用文档字符串进行类型提示(如下所示)无法正常工作

def make_thetas(xmin,xmax,n):
    """
    @type xs: np.multiarray.ndarray
    """
    xs = np.linspace(xmin,xmax,n)
    widths = (xs[1:] - xs[:-1])/2.0  # Error Msg 1
    thetas = xs[:-1]+ widths         # Error Msg 2  Followup of Error 1
    return thetas

错误消息1:' - ' Class'tuple'没有定义' sub ',因此' - '运算符不能在其实例上使用 错误消息2:'widths' 预期类型'元组',而是'浮动'而不是
也许还有其他类型提示可能会起作用......
THX