首页   注册   登录
fasionchan

fasionchan

🏢  小菜学编程 / Linux后台开发工程师
V2EX 第 477404 号会员,加入于 2020-03-18 16:41:30 +08:00
今日活跃度排名 7399
慕课网专栏《Python源码深度剖析》作者
fasionchan 最近回复了
@sixway 闭包不是问题的根源,相反它是受害者。循环没有独立作用域,会导致很多非预期的行为,在循环中定义的闭包函数就是典型的一例。Python 中变量的行为跟 JavaScript 中 var 定义的变量一样,都是函数作用域。但 JavaScript 后来引入 let 和 const 关键字,作用域缩小到代码块,这样闭包就不会有非预期行为了。
3 天前
回复了 baishuigansijun 创建的主题 Python PyObject 能访问 PyLongObject 内容么
如果你确定它是一个 PyLongObject,那么你可以将 PyObject 指针强制转换成 PyLongObject 指针,这样就能访问了。另外,PyLongObject 里面不是保存一个 int 值,而是通过 int 数组实现的大整数,它的表示访问比 int 大的多。

我写的《 Python 源码剖析》专栏中有两个下节专门介绍这个:

- int 对象,永不溢出的整数
- int 源码解析:如何实现大整数运算?

有兴趣可以看看,地址是: https://www.imooc.com/read/76
3 天前
回复了 smallpython 创建的主题 Python 在 python3 中, 字节流如何转换成字符串
1 楼说的就是答案,推荐看一些关于 bytes 对象、str 对象以及文本编码的材料:

文本编码: https://python.fasionchan.com/zh_CN/latest/practices/coding.html
str 对象: https://mp.weixin.qq.com/s/E7z2yN8V9ac2pUTfgqDg9Q
@gantleman @aeon113 他已经把话说得很清楚了,至少我得看明白,应该不算话说一半……前面我好像也提过,你这个方案本质就是串行化,可能适用于少量特定的场景,但在我认知的范围内,看不到普适性。就像如果数据库串行化真的好使,那些大神们何必去折腾各种隔离级别和多版本并发呢?
@qybing 意思是线程不退出吗?
@SjwNo1 不是,字节码不会直接转换成机器码,而是由虚拟机解释执行。虚拟机内部是一个由 C 实现的 for 循环,逐个遍历待执行字节码; for 循环每次迭代是一个巨大的 switch case,针对不同字节码执行对应的处理逻辑。
比 pyinstaller 之类的现成工具比,好在哪里呢?
内存是否增加取决于对象创建以及销毁,跟多线程无关。如果你一直创建对象,但不回收,内存肯定是要增加的。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1074 人在线   最高记录 5168   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 21:53 · PVG 05:53 · LAX 14:53 · JFK 17:53
♥ Do have faith in what you're doing.