我今天在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是一个类型的联合吗?
答案 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]
为mylist
或None
对象。
这似乎是由list
测试引起的;我要说这是PyCharm在这里进行了不正确的推断,因为你之前只将if mylist:
清楚地设置为mylist
个实例。 list
测试空虚,而不是对象是if
。
这是一个错误,以issue PY-21897的形式提交给PyCharm项目,并在2017年的PyCharm中修复。