fasionchan

fasionchan

🏢  小菜学编程 / Linux后台开发工程师
V2EX 第 477404 号会员,加入于 2020-03-18 16:41:30 +08:00
慕课网专栏《Python源码深度剖析》作者
fasionchan 最近回复了
25 天前
回复了 impig33 创建的主题 Python Python 入门书哪个好?
29 天前
回复了 Chan775 创建的主题 Python 请教关于 Python 多线程下载器问题
r.content 将 response body 整体读到内存,应该是造成内存占用大的关键因素。可以分配固定的缓冲区,分段读写。
早上刚看这个帖子,中午就踩上坑,感觉有毒……

事情是这样的:我们公司有一套古董级的监控系统 cacti,今天发现它所有 http 接口时间戳参数只要达到 1600000000,就失效……不知道 cacti 内部是怎么处理的,不过我不感兴趣,刚好有一个理由让其他同事废掉这个恶心的系统哈哈哈
总有一些小人假聪明,妄想着不劳而获,但其实他们到头来也捞不到什么好。气就气在就是这些小人把大家的创作热情浇灭了,结果损人还 TMD 不利己,大家只能一起看一些营销号发的无关痛痒的文章了……
51 天前
回复了 N0phone 创建的主题 Python 关于 Python 如何处理 json 数据转义的问题
我猜你的 payload 是一个字节序列,它可能是 utf8 或者 gbk 编码的,它的 base16 编码并不是合法的 unicode 呀……
这没理解文本编码的结果,不如先看看文本编码是怎么回事: https://python.fasionchan.com/zh_CN/latest/practices/coding.html

为什么要自己拼接呢?按我的理解,你把数据解码成 unicode 字符串,然后调 repr 或 json.dumps 不就可以得到\uxxxx 这种形式了吗?

```
>>> data = '我们'
>>> data
'\xe6\x88\x91\xe4\xbb\xac'
>>> data.decode('utf8')
u'\u6211\u4eec'
>>> repr(data.decode('utf8'))[2:-1]
'\\u6211\\u4eec'
>>> json.dumps(data.decode('utf8'))[1:-1]
'\\u6211\\u4eec'
```
一般没有什么问题。但是,如果这些变量是描述符(descriptor,实现了__get__ __set__ __del__ 魔术方法)的话,属性查找行为需要留意。具体可以研究下 Python 类机制以及数据描述符的特性:

https://www.imooc.com/read/76/article/1928
引入协程是为了解决 IO 阻塞问题,在高并发场景你不可能每个连接都分配一个线程去处理,这时协程的作用就体现出来了。协程比线程更加轻量级,占用资源更小。开销的话看实现,一般协程不需要很复杂的调度,在 IO 不可用时让出执行权,在 IO 就绪时重新执行,开销相对而言并不大。对于计算密集型场景而言,协程并没有什么用处,相反是个累赘。
@yezhifei241 java 是个不错的选择,优先把数据结构、算法设计、操作系统、网络、数据库这些基础课补一补吧
so easy. 看看计算机专业都有哪些基础课,一门门啃下来就是一个合格的程序猿了。别老是整什么新编程语言,语言只是冰川一角。
再造轮子,自制一个协程库,你就什么都明白了~

我写过一个 100 行左右的协程库,虽然是个玩具,对理解协程运行机制应该很有帮助,gist 地址如下:



例子来自我写的专栏《 Python 源码深度剖析》,里面有详细讲解: https://www.imooc.com/read/76
专栏是付费的,不过有几篇是免费的,还可以自己选一篇试读。可以选择试读《再造轮子:手把手教你设计协程库》这篇,里面完整介绍了协程的运行机制、协程库设计思想以及示例协程库代码解析。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2047 人在线   最高记录 5168   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 00:07 · PVG 08:07 · LAX 17:07 · JFK 20:07
♥ Do have faith in what you're doing.