Ole*_*kov 7 python regex string yaml python-3.x
假设我有一个天真的类定义:
import yaml
class A:
    def __init__(self):
        self.abc = 1
        self.hidden = 100
        self.xyz = 2
    def __repr__(self):
        return yaml.dump(self)
A()
印花
!!python/object:__main__.A
abc: 1
hidden: 100
xyz: 2
是否有一种干净的方法来删除包含hidden: 100yaml dump的打印输出的行?密钥名称hidden是事先已知的,但其数值可能会更改.
期望的输出:
!!python/object:__main__.A
abc: 1
xyz: 2
仅供参考:此转储仅供显示,不会加载.
我想可以使用key hidden来使用key =来抑制键/值对yaml.representative.另一种方法是hidden: [number]在字符串输出中使用RegEx 查找.
我查看了 pyyaml 的文档,但没有找到实现您目标的方法。解决方法是删除 attribute hidden、 call yaml.dump,然后将其添加回:
    def __repr__(self):
        hidden = self.hidden
        del self.hidden
        return yaml.dump(self)
        self.hidden = hidden
退一步来说,你为什么要使用yamlfor __repr__?您可以自己推出而不是依赖吗yaml?