预期' collections.Iterable',取而代之的是可选[list]

时间:2016-08-12 11:00:14

标签: list python-2.7 pycharm

我今天在Pycharm Community Edition 5.0.3中收到了这个错误,并且想知道它是否只是我做错了/没有意识到,或者它是否是PyCharm lint问题。重现错误的代码是

mylist = list()

# fill mylist, or do nothing here, either way the error persists

if mylist:
    # if something in the list...
    mylist.append(2)
else:
    # list is empty, add something
    mylist.append(1)

# warning at the loop here
for val in mylist:
    print val

这是因为它认为mylist是一个类型的联合吗?

2 个答案:

答案 0 :(得分:1)

如果你放置这样的东西:

""":rtype: list"""

在生成列表的函数的docstring中,应该让pycharm意识到你真的期待一个列表。

答案 1 :(得分:0)

<BorderPane fx:controller="fxmlexample.MyController" xmlns:fx="http://javafx.com/fxml"> <top> <MyCustomComponent onButtonAction="#myCustomButtonAction"> </MyCustomComponent> </top> typing annotation,表示PyCharm发现Optional[list]mylistNone对象。

这似乎是由list测试引起的;我要说这是PyCharm在这里进行了不正确的推断,因为你之前只将if mylist:清楚地设置为mylist个实例。 list测试空虚,而不是对象是if

这是一个错误,以issue PY-21897的形式提交给PyCharm项目,并在2017年的PyCharm中修复。