hsfzxjy 最近的时间轴更新
hsfzxjy
ONLINE

hsfzxjy

V2EX 第 312178 号会员,加入于 2018-04-27 14:01:41 +08:00
今日活跃度排名 1506
hsfzxjy 最近回复了
我说一个观点,就是在 CPython 漫长的发展过程中 Extension 的接口会发生抽象泄漏,从而制约其底层实现的改变。具体可以看 Hyrum's Law https://www.hyrumslaw.com/

展开来说,一个有很多用户使用的接口,无论其抽象做的多好,用户的使用最终多少会透过这层接口而去依赖背后的具体实现。CPython Extension API 虽然没有暴露太多和 GIL 相关的 API ,但你很难说不存在某些扩展,其正确性依赖于「解释器里有个全局锁」这一事实。就算细粒度锁或去除 GIL 的性能和安全问题解决了,CPython 作为正统及使用最广泛的版本也不会贸然采用。这其中会有很长的验证过程。
14 天前
回复了 kgdb00 创建的主题 前端开发 chrome 如何匹配所有的下载链接?
应该是是 response 的 content type 在影响,感觉没有比尝试发一个请求更靠谱的办法
大数据感觉比前端好吧
26 天前
回复了 lakehylia 创建的主题 随想 今天亲眼目睹一辆小车别了王者
@eluotao 看过事故锦集视频的应该知道王者是什么,我觉得楼主只是顺口说出来了。也不用这样说楼主吧
ubuntu 用了六七年了,感觉很好
29 天前
回复了 MiketsuSmasher 创建的主题 Python Python 类方法的装饰器问题
... def valid_before_logout(func):
... ... def execute(self, *args, **kwargs):
数据规模多大?
31 天前
回复了 abersheeran 创建的主题 Python 求一个获取 lambda 对象源代码的方法
还有另一个问题是你要考虑 lambda 所在的闭包,看一个例子

def f():
... a = 1
... return lambda: a + 1
a = 1
f().__code__.co_code == (lambda: a + 1).__code__.co_code # False

这两个 lambda 虽然代码相同但是他们字节码不一样。原因是 f() 中的 a 是个 local 变量,读取时会使用 LOAD_DEREF ;而后一个是 global 变量,读取时会使用 LOAD_GLOBAL 。总而言之 corner cases 有很多很多
31 天前
回复了 abersheeran 创建的主题 Python 求一个获取 lambda 对象源代码的方法
@O5oz6z3 #16 co_code 不可靠,一个简单的反例

(lambda: print(1)).__code__.co_code == (lambda: sum(1)).__code__.co_code # True

这是因为变量名一类的不存在于字节码中,而是在 __code__.co_names 里
31 天前
回复了 abersheeran 创建的主题 Python 求一个获取 lambda 对象源代码的方法
@abersheeran 我当时的解决方法是强制用户给同一行的 lambda 加不同的前缀,当然这个就比较丑了。同期待更好的方法
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2724 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 12:38 · PVG 20:38 · LAX 05:38 · JFK 08:38
♥ Do have faith in what you're doing.