我刚刚安装了PyCharm 3.4并获得了一些新的警告。不只是在这里,而是在很多地方。代码当然没问题。有人可以翻译PyCharm试图告诉我的内容以及如何沉默这些消息吗?
答案 0 :(得分:8)
基于'more ...'截图,看起来Pycharm可能正在解释map(),好像逗号周围的两个术语都是lambda的一部分,即lambda只返回一个2元组将其视为map()函数的两个参数。
要尝试的事情:
修改的
您激励我去了解有关Python和Pycharm的更多信息。 :)
看起来Pycharm使用列表理解比使用map()
更开心。使用此示例数据:
data = {
'data': {
'children': [
{'data': {'url': 'http://1.com/', }, },
{'data': {'url': 'http://2.com/', }, },
]
},
}
如果您像编写代码一样编写代码,则会收到错误:
items = map(lambda children: children['data'], data['data']['children'])
for item in items:
print item['url'] # Pycharm shows warning on 'url'
但是如果你使用列表理解,那么Pycharm很高兴:
items = [x['data'] for x in data['data']['children']]
for item in items:
print item['url'] # No warning from Pycharm
两者的输出相同。
ISTR阅读列表理解现在比map()
更受欢迎,所以也许Pycharm会朝这个方向推动我们?
答案 1 :(得分:4)
如果您使用get()
从字典中获取值,也可以删除此通知。这应该工作:
fresh_urls = {item.get('url') for item in items}