我刚刚安装了PyCharm 3.4,并收到了一些新的警告。不仅在这里,而且在很多地方。代码当然可以。有人可以翻译PyCharm试图告诉我的内容以及如何使此消息静音吗?

more...

最佳答案

根据“更多...”屏幕截图,看起来Pycharm可能正在解释map(),好像逗号周围的两个术语都是lambda的一部分,即lambda只是返回一个2元组而不是对其进行处理作为map()函数的两个参数。

尝试的事情:

  • 在map()内添加括号
  • 寻找可能会混淆Pycharm的map()自身的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可能会朝着这个方向插入我们吗?

    关于python - Pycharm:预期类型 'Integral',改为 'str',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23962434/

    10-12 16:43
    查看更多