V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ethego  ›  全部回复第 2 页 / 共 18 页
回复总数  357
1  2  3  4  5  6  7  8  9  10 ... 18  
2019-12-09 11:27:37 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
不好意思没仔细看你后面的结论,我认为你说的把声明和赋值放在一起是导致让人混淆是对的,但并不是问题的根本原因。来看看 Rust 是怎么做对这道题的:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=2d41aeaaaba8bf4aae2306ea9cdf77f0
2019-12-09 11:15:40 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
@FrankHB
你错了,替换成列表没有问题的原因在于对于 list 成员的操作亦然属于只读 list 而不是写 list,对于目前的 python 来说在没有 nonlocal 的情况下仅仅只是不能对变量本身进行操作,而对 list 成员的操作并不涉及 list 变量本身 —— 它只是一个富指针。

除非你认为 Guido 说的有问题,那你找他去,上面就是 Guido 觉得需要加入 nonlocal 关键字的观点与原因。
2019-12-09 00:28:08 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
和你说的右值里使用了未定义变量没有关系,add_one 作为一个闭包函数是要向上查找变量定义的,这个语义目前在绝大多数现代语言里都是一样的。实际上 Python 只是无法写而不是不能读,你试试改成 `print(cnt+1)` 你看看能不能不赋值直接使用 cnt,明显不是未定义的问题。
2019-12-09 00:17:19 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
https://mail.python.org/pipermail/python-dev/2003-October/039214.html
可以自己进来看看 guido 是怎么样承认这个错误了
2019-12-09 00:14:54 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
所以作为对函数上下文查找的修正,在 global 和 local 之间加入了 nonlocal 的关键字,来在不破坏兼容下实现正确的闭包 t 实现,即递归向上层 context 查找变量。
2019-12-09 00:08:25 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
@ipwx 什么叫什么鬼说法,Python 2 没有正确实现闭包是众所周知的事实。
2019-12-08 21:34:33 +08:00
回复了 whoops 创建的主题 Python Python 作用域问题,int 型变量为什么会有些特殊呢
python 最开始并没有正确实现闭包,并不是 int 类型的问题,在 python 3 下可以在闭包内使用 nonlocal 声明闭包变量。
2019-11-15 17:32:47 +08:00
回复了 guyskk0x0 创建的主题 Python 请问有什么方式能把 Cython 代码编译为纯 Python 代码?
不可以,你可以在手写一个纯 python 的版本。
2019-11-15 17:32:11 +08:00
回复了 guyskk0x0 创建的主题 Python 请问有什么方式能把 Cython 代码编译为纯 Python 代码?
当然要分别打包,cython 写的玩意是编译到 c 再进一步编译到 binary 的,没有可以编译到 python 的方法。如果要分发二进制,就需要按系统分别打包。
2019-11-08 18:47:03 +08:00
回复了 godloveplay 创建的主题 程序员 为什么编程语言需要基础数据类型?
地址中的只是一堆毫不重要的二进制,怎么在真实世界中解读和使用这堆二进制才是最重要的,后者依赖类型。
2019-10-18 16:30:09 +08:00
回复了 index90 创建的主题 Go 编程语言 当 Go 没有 Generic 的时候,如何正确使用 monad?
*鸡肋
2019-10-18 16:29:53 +08:00
回复了 index90 创建的主题 Go 编程语言 当 Go 没有 Generic 的时候,如何正确使用 monad?
做不了,Go 缺乏必要的静态类型分析。就算做出个类似的,各种依赖运行时也完全是积累。
2019-08-06 10:40:51 +08:00
回复了 ethego 创建的主题 Python 一个新的 GraphQL Python 实现, Python 且更加现代
@mway GraphQL 可以看做是更精细的 RPC 协议
2019-07-25 11:26:19 +08:00
回复了 rainto 创建的主题 Python asyncio 批量获取需要 await 的对象为空,请表哥们指教
1. `asyncio.create_task(fetch_async('http://www.baidu.com/'))`
2. 用 queue 而不是 list,并发执行是这里有竞争
2019-07-16 23:24:32 +08:00
回复了 ethego 创建的主题 Python 一个新的 GraphQL Python 实现, Python 且更加现代
@omph 本质上没有太大区别,不过由于舍弃了 JSON 作为传输协议,GraphQL 更加人类可读。另外假设你决定要实现一个第三方库,然后你去找了 GraphQL 的 spec: https://graphql.github.io/graphql-spec/June2018/ ,然后你又看了看 JSONAPI 的 spec: https://jsonapi.org/format/ 。你会决定做哪个?高下立判。GraphQL 在标准化以及组件支持上比 JSONAPI 要好。
2019-07-16 18:02:17 +08:00
回复了 ethego 创建的主题 Python 一个新的 GraphQL Python 实现, Python 且更加现代
@forblackking 如果有好的建议以及 bug 反馈,欢迎联系我,email 以及其它联系方式均可。
2019-07-16 17:38:05 +08:00
回复了 ethego 创建的主题 Python 一个新的 GraphQL Python 实现, Python 且更加现代
如果已经有在使用 Graphene 或者其它 GraphQL 实现的话,可以尝试一下 Pygraphy。
2019-04-08 18:52:29 +08:00
回复了 bwangel 创建的主题 Go 编程语言 一条面试题引发的思考 Go 版本
@georgetso 当然我有误解你说的空转。不过对于这道题,你说的那点抢占开销比什么公平锁快多了。你自己动手 benchmark 试下就知道了,为了解决抢占的开销远比抢占本身大。
2019-04-08 14:33:05 +08:00
回复了 bwangel 创建的主题 Go 编程语言 一条面试题引发的思考 Go 版本
@georgetso 另外你还要再学习一个。我虽然写了 for {} 但是并没有什么 CPU 空转,mutex 没有抢到锁会阻塞等待释放,这是基础知识。
1  2  3  4  5  6  7  8  9  10 ... 18  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2755 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.