1. EVAL(X, TYPE(“”, (DICT,), {‘__GETITEM__': LAMBDA S, N: N})())

    eval(X, type("_Dummy", (dict,), {'__getitem__': lambda name, value: name}))
    

    这段代码最重要的一个应用是可以格式化非标准的JSON数据,比如

    X = { key: "value" }
    eval(X, type("", (dict,), {'__getitem__': lambda s, n: n})())
    

    这样可以转化成标准字典

    那么这一句神奇的东西该怎么解释呢? 首先type在这里充当的不是返回类型的作用,这里作为一个class constructor的存在,第一个参数是类名,第二个参数为类的基类,第三个参数为一个字典,表示这个类的成员和方法。 那么,eval(X, type("", (dict,), {'getitem': lambda s, n: n})())就是创建了一个临时的_Dummy类,上面的语句规约为

    eval(X, _Dummy)
    

    那么eval的第二个的参数什么意思呢?

    >>> help …
    Tagged as : python
  2. Mutagen-Python Examples

    • MP3 加封面图片
    from mutagen.mp3 import MP3
    from mutagen.id3 import ID3, APIC, error
    
    audio = MP3('example.mp3', ID3=ID3)
    
    # add ID3 tag if it doesn't exist
    try:
        audio.add_tags()
    except error:
        pass
    
    audio.tags.add(
        APIC(
            encoding=3, # 3 is for utf-8
            mime='image/png', # image/jpeg …
    Tagged as : python mutagen mp3

Page 1 / 1