代码之家  ›  专栏  ›  技术社区  ›  ccpizza

pycharm:如何为外部对象类型设置自定义字符串函数(ie type renderer)?

  •  3
  • ccpizza  · 技术社区  · 6 年前

    是否可以将pycharm配置为使用自定义函数来显示 __str__ 调试会话中类型的表示?我指的是内置类型或从第三方库导入的类型,我不想修改它们。

    例如,不是调试器中的字符串 {lxml.html.HtmlElement} <Element tr at 0x10e2c1418> 我想要输出 etree.tostring(element) .

    智能思想 Java Type Renderers 在那里你可以设置一个自定义 toString() 方法,以便在调试这些类型时使用 托斯特林() 渲染器。PyCharm中是否提供或可以实现类似的功能?

    我尝试过这种方法:

    # for lxml.html
    
    lxml.html.HtmlElement.__str__ = lxml.html.etree.tostring
    

    这为 lxml.html ,但这感觉像是一个丑陋的变通方法,我想找到一种不需要 monkey-patching 外部库。

    这种方法的缺点是,例如 lxml.etree.Element 因为设置 lxml.etree.Element.__str__ = lxml.etree.tostring 没有效果,因为它委托给 lxml.etree._Element 它是一个只读的c本机模块 小精灵 .

    1 回复  |  直到 6 年前
        1
  •  1
  •   Pavel Karateev    6 年前

    python没有这样的功能,请在pycharms的bug tracker中投票给相应的票证: PY-21984 .