V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Contextualist  ›  全部回复第 5 页 / 共 8 页
回复总数  146
1  2  3  4  5  6  7  8  
2021-03-28 00:06:55 +08:00
回复了 zictos 创建的主题 Python Python 读写文件时不用 with 也不关闭文件,这样的风格好吗?
@zictos #22 pathlib 不会提供像 @ipwx #24 描述的文件迭代器。考虑一下下面的代码:
try:
for l in iter_lines('test.txt'):
print(l[100])
except:
pass

如果 for 循环里的语句抛出了异常,程序会继续执行,但是因为 iter_lines 生成器没有执行完,里面的文件不会被关闭。问题的根本原因是:没有办法能 自动 将外层的异常传递进入内层。这就是上下文管理器 / with 语句设计要解决的问题之一。用 with open,如果 for 循环里的语句抛出了异常导致跳出了 with 的范围,文件会被自动关闭。
2021-03-27 12:41:39 +08:00
回复了 zictos 创建的主题 Python Python 读写文件时不用 with 也不关闭文件,这样的风格好吗?
如果只是一次性读 / 写,建议使用 pathlib:
from pathlib import Path
Path('test.txt').write_text('123', encoding='utf-8')
text = Path('test.txt').read_text(encoding='utf-8')

这些方法都是自带关闭文件的。
2021-03-22 13:08:35 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
不需要参数校验的话,可以试试 attrs + cattrs 。我自己在用这个方案,但是是用来反序列化配置文件的,所以没有考虑性能。另外 pydantic 我没用过,没有发言权。据 pydantic 作者自己说估计 attrs 能更快: https://github.com/samuelcolvin/pydantic/issues/1459#issuecomment-622045131
2021-03-20 04:33:46 +08:00
回复了 Contextualist 创建的主题 全球工单系统 一张无法在微信里发送的 GIF
@eason1874 谢谢测试!那有可能是 iOS 端的问题,我是 iOS 端微信版本 8.0.2 。
(以下内容与本帖关系不大)
@no1xsyzy 啊,个人感觉人类目前对语言的本质和大脑的工作原理都理解得太少了。

科学理论说白了就是:基于一个或多个假设,演绎出一套自洽的系统,而后,如果这套系统能解释我们在世界中观测的结果,那很好。与之相比,(我感觉)人们日常的思考会更倾向于使用归纳而非演绎。这是我对你所指的科学的“非人性化”的理解。因此当科学发展到需要用来解释日常观测不到的现象(接近光速的运动和原子层面的尺度)时,用归纳法来理解就会有些难度。
@no1xsyzy 哈哈,没想到能在这里遇见正经的语言学讨论。作为多数人的语言(如中文、英文)的使用者,我们的确容易将自己语言中的许多句法和语法规则想当然地推导到其他语言。语言对人的思维方式有着更深的影响。

那个包含其传统医学体系的语言莫非是 The Linguists 那部纪录片里提到的 Kallawaya ?

另外想补充一下,其实早在上个世纪就有各种出于不同目的的实用人工语言的探索,推广的阻力基本上都是由于大家更习惯使用自己的母语和已经被广泛使用的自然语言。让我印象比较深的是以词汇中立和减少歧义表达为目的的逻辑语( Lojban )。
借助一个通用语言作为翻译的桥梁并不能解决语言间差异的问题。如果把所有语言的词汇(假设有 N 个)放在一个超高维度的空间,通用语言的词汇就像是这些词汇的 K-means clustering 的中心点。中心点为 N 个时就是现在的翻译系统,中心点小于 N 个时就会同时牺牲表达能力和互译的精确度。另外,有些语言间的差异远超过词汇层面的差异,比如有的语言的一些独特句子结构是很难用另一个语言表示的。

@no1xsyzy 作为接收信息的工具的话,感觉 “X -> a 永远可行” 稍微实际一点;作为一个交换信息的系统,“a -> X 是永远可行” 则是一个表达能力弱且不精确的系统。
2021-03-08 14:03:50 +08:00
回复了 Contextualist 创建的主题 Python 最近发现 defaultdict 的一个奇技淫巧
@no1xsyzy 好观点。查了一下,这样(在 CPython 中)似乎的确不是线程安全的,因为如果工厂函数是 Python 代码,调用它的这个动作就是一个线程切换点。详见 https://stackoverflow.com/a/17682555,按照这个回答的提示,或许下面这个不优雅写法能行?
ind = defaultdict()
ind.default_factory = ind.__len__
2021-03-07 11:14:43 +08:00
回复了 Contextualist 创建的主题 Python 最近发现 defaultdict 的一个奇技淫巧
@iConnect @laoyuan
就 CPython 来说,defaultdict 和 dict 的实现几乎是一样的,前者只是多了个处理键值缺失的方法(__missing__)。这就意味着:1) 如果查找的键存在,其效率和 dict 一样; 2) 否则调用 len ( O(1),因为这是对象自己维护的一个属性),并插入一对值。
2020-09-10 05:03:29 +08:00
回复了 honjow 创建的主题 macOS BigSur 下目前可行的单键切换输入法方案
@honjow 他们官网链接里的信息或许更有用些: https://karabiner-elements.pqrs.org/docs/macos-big-sur/
我自己没试过,祝你好运了!
2020-09-10 02:46:39 +08:00
回复了 honjow 创建的主题 macOS BigSur 下目前可行的单键切换输入法方案
Karabiner 的作者正在用 DriverKit 写新版本( Big Sur 可用): https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice
@honjow 要不要试试毒。
2020-06-23 04:53:44 +08:00
回复了 gcyrn 创建的主题 Apple macOS 怎么也用圆角矩形了
@gcyrn 确实,比如 Safari 加个框框倒没有原来那么清爽了。哈哈,看久了就顺眼了。乔布斯:让我们告诉用户他们想要什么
2020-06-23 03:31:13 +08:00
回复了 gcyrn 创建的主题 Apple macOS 怎么也用圆角矩形了
@gcyrn 嗯,我感觉之前 macOS 锐利风格的图标潜在语言是“专业、工具、技术”,iPadOS 圆角那一套的语言是“创作、交互、人性化”(所以目前个人觉得 Logic Pro 、FCX 等专业工具新圆角图标比较不适应)。这样看的话 macOS 规划的受众是想要进一步拓宽了。(或者纯粹只是认为高度一致的设计语言更重要?唉,怀念和而不同的时代)
2020-06-23 02:54:31 +08:00
回复了 gcyrn 创建的主题 Apple macOS 怎么也用圆角矩形了
鼠标扫过我 Dock 上的访达,再看看视频里,那圆角访达的表情实在是太憨憨了……
2020-04-03 10:45:31 +08:00
回复了 Contextualist 创建的主题 问与答 求推荐合适的 RPC 或 消息队列
@waising 看了下 pulsar,它的 pulsar function 有点意思,可以定制分发逻辑,似乎基本满足我上述的要求了。就是整体来看这个系统大而全,感觉有些重,我还是有点贪心,希望找到 nsq 一样的轻量方案。我得再花时间考察一下它。
@orangy 想取消默认的,就用一个不容易按到的快捷键覆盖它,比如我给自己的 Safari 退出设的是⌥⌘Q,然后我根本就不会按这个组合。每条设置的作用范围是一个应用,比如我举的例子仅改了 Safari,其他应用退出还是⌘Q 。想覆盖所有应用的话,还是推荐 Karabiner-Elements 。
其实 Mac 上的每个菜单命令,都能自定义快捷键: https://sspai.com/post/34527
2020-04-01 09:35:08 +08:00
回复了 Contextualist 创建的主题 问与答 劫持/接管进程的所有文件读写
@des
@superrichman
@chinuno

感谢点拨!决定把小文件都尽量先写到各节点的 /dev/shm 里,然后定期转移到速度慢的网络文件系统上的单文件归档。
2019-08-04 10:40:40 +08:00
回复了 jinliming2 创建的主题 iPhone Siri 的英语
应该是 Nineteen hundred hours 和 Twenty-three hundred hours,查了一下这个叫所谓的 Military Time Pronunciation。详见: https://military.onlineclock.net/chart/
2019-07-25 08:20:24 +08:00
回复了 Contextualist 创建的主题 分享创造 零配置命令行局域网传文件/剪贴板
@leoleoasd @mrjiejiejie
用 HTTP 文件 server,要么发的人需要整理(移动 /打包)文件,要么收的人就要满地找文件了,还有就是对文件夹传输不友好。如果我的例子用 HTTP server 重写,大概就是这个样子了:

# A:
~/archive $ tar czf 1.tar.gz -C data 001 && python3 -m http.server
(同理上面后半部分可换 npx http-server )

# B:
~/project/data $ curl A.local:8000/1.tar.gz | tar xz && mv 001 001-A
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1213 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 18:03 · PVG 02:03 · LAX 11:03 · JFK 14:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.