首页   注册   登录
ONLINE

copie

  •   希望获得一个实习的工作
    V2EX 第 316412 号会员,加入于 2018-05-15 00:05:40 +08:00
    今日活跃度排名 1872
    copie 最近回复了
    10 天前
    回复了 ICKelin 创建的主题 分享创造 一个内网穿透服务
    @northernlights #11 你这样说的有问题的,即使普及了 IPV6, ISP 也不会给你公网 IP, NAT 依然存在.
    Python 的思想不应该是能运行 Python 解释器会想一切办法运行,不能运行就抛出异常。在代码里面放太多的类型检查会导致代码异味。
    为什么没有人说 websocket
    join 是首先遍历 list 中的每一个字符串确定 maxchar 通过 maxchar 和所有字符串的长度和 sz 通过 PyUnicode(sz,maxchar) 创建新的字符串对象 然后通过每一个字符串的长度和偏移将 list 字符串快速拷贝到新串中。
    format 其实是先通过 FORMAT_VALUE 将其他类型转换为 str 类型并且把 str 压入栈。然后进行 join

    join 和 format 两个都落实到 _PyUnicode_JoinArray()这个函数上去了。

    比如 f"{100},200,{300}"等同与''.join(['100',',200,','300'])

    说到效率问题因为 join 只能连接字符串而且 FORMAT_VALUE 这个字节码他的具体计算会落实到 Python 实现所以转化的效率不高。

    也就是说 join 和 format 的效率区别在于 format 需要将其他类型转化成为 str 而且这个转化过程还是 Python 实现的而 join 只针对与 str.
    要计算一个变量的 id 的时候一定要确保这个变量不是被计算出来的。
    简单来说就是这个变量一定是有人引用的。只有这样才可以算出来真正的 id。
    c = (a,b)
    d = (b,a)
    这里 id(c) 就 不等于 id(d) 了。
    会出现 id((a,b)) 等于 id((b,a)) 是因为引用计数为 0+内存被回收+缓存池 导致的
    52 天前
    回复了 hoxis 创建的主题 Python Python 语法糖之「列表推导式」
    @lance6716 #14 其实我的版本是 py3.6.5

    In [1]: import dis

    In [2]: dis.dis("[a for a in [1,23,3]]")
    1 0 LOAD_CONST 0 (<code object <listcomp> at 0x7f39be9236f0, file "<dis>", line 1>)
    2 LOAD_CONST 1 ('<listcomp>')
    4 MAKE_FUNCTION 0
    6 LOAD_CONST 5 ((1, 23, 3))
    8 GET_ITER
    10 CALL_FUNCTION 1
    12 RETURN_VALUE

    In [3]:
    这个应该是你看到的样子。
    我们看到 CALL_FUNCTION 运行的就是前面 MAKE_FUNCTION 产生的结果。
    然而产生的这个函数的字节码是下面这个样子的所以我说的没有问题。
    In [10]: dis.dis(x)
    1 0 BUILD_LIST 0
    2 LOAD_FAST 0 (.0)
    >> 4 FOR_ITER 8 (to 14)
    6 STORE_FAST 1 (x)
    8 LOAD_FAST 1 (x)
    10 LIST_APPEND 2
    12 JUMP_ABSOLUTE 4
    >> 14 RETURN_VALUE
    52 天前
    回复了 hoxis 创建的主题 Python Python 语法糖之「列表推导式」
    @lance6716 列表表达式确实使用的是 FOR_ITER 生成器表达式使用的字节码和生成器差不多的。
    @robinlovemaggie 但是通过配置 Python 启动的环境变量确实可以成功运行。但是如果有一天代码上线后出现问题远程打开代码注释都是乱码。log 汉字这是乱码岂不是更加的闹心。
    这个属于系统编码的问题。我用 docker 发布的时候如下解决的。

    RUN echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen
    RUN locale-gen
    ENV LANG=zh_CN.UTF-8
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   1650 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 10ms · UTC 02:36 · PVG 10:36 · LAX 19:36 · JFK 22:36
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1