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
  3. 黑科技:esp8266让你摆脱DrCOM客户端

    嘛,首先放出放弃维护的代码吧
    https://github.com/drcoms/drcom-dialer-esp8266

    之前折腾 DrCOM 客户端, 但是面对某些情况下路由器没有办法装下 python 的时候,该怎么办好呢?
    这时候只需要小小的一颗金坷垃 , 哦不,是一片小小的 esp8266 就可以完成 DrCOM 认证。
    首先,工欲善其事必先利其器,下面的东西里随便选一个,这里我们选了最大的那一坨。
    开发板

    那么首先令 GPIO14 为低电平,以开启AP模式来设置相关参数,实际成品中可以将 GPIO14 和 GND 中间以一个开关连接。

    开发板

    点开那坨白色的开关以后,串口输出(大概就是调试信息啦

    开发板

    这时候你会忽然发现周围多了一个叫 DrCOMDialer 的热点名,这是专门用来连接上去配置用的哟。

    开发板

    默认没有密码,连接上去,然后在浏览器中访问 http://192.168.4.1,你会看到你所看到过最简陋的网页 …

    Tagged as : esp8266 drcom

Page 1 / 1