V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  no1xsyzy  ›  全部回复第 78 页 / 共 267 页
回复总数  5322
1 ... 74  75  76  77  78  79  80  81  82  83 ... 267  
2021-01-27 21:42:51 +08:00
回复了 LeeReamond 创建的主题 Python Python 使用静态类型标注时的循环导入问题
@LeeReamond
方法 1,更好的 eval ( python>=3.7 ):
pydantic (<https://github.com/samuelcolvin/pydantic>)用了一个类似 eval 的东西:
/pydantic/main.py#L757-L765
这里通过 sys.modules[cls.__module__].__dict__ 拿到 globals,然后
/pydantic/typing.py#L51-L68
应对不同版本调用 ForwardRef 的保护方法进行解析(但仍然是个 eval,你完全可以写出 `a: 'type(1+2)' = 5`,而且类型检查能过)。

方法 2,typing.Protocol ( python>=3.8 )
采用 typing.Protocol,通过结构子类型替换名义子类型。运行时可以采用 .runtime_checkable
https://docs.python.org/zh-cn/3/library/typing.html#nominal-vs-structural-subtyping (这是我翻译的,就放中文文档了)
( Go 的 interface 就是结构子类型,至于 Ponylang 则同时实现了结构子类型( interface )和名义子类型( trait ))

方法 3,控制反转(无要求)
需要动代码结构。
先解释下 mixin 和 abc:
mixin 是一种设计模式,可以参考 Ponylang/rust 的 trait,把一些非关键依赖的方法从基类里剥离出去,最后依赖结构会形成一个 Diamond 。
抽象类是指标准库 abc 模块,把最基础的要求提取出来可以在类型里留洞。
@whwq2012 应当是不行的,但如果我猜得没错的话它和所有 connect test 一样是一个 http 的,你可以主动 302 拦截。
自定义有个问题,它很可能是完全匹配检测的( HTTP 但不是 html ),自定义的话内容文本也必须完全一致。
应符合语义。
这样说有点不明不白,还是解释一下:
打个比方,API 请求物品栏内容。那么,一个有物品栏但物品栏为空的角色,和一个没有物品栏的角色,分别是 [] 和 null
但 null 和不存在此 key 应当是同义的(根据 JSON merge patch RFC )。
说不定还是要推荐一下 GraphQL 之类请求方指定 spec 的方案(中台……
2021-01-27 09:41:46 +08:00
回复了 LeeReamond 创建的主题 Python Python 使用静态类型标注时的循环导入问题
也可以转移到 .pyi 里面去,1. 对运行时隐形; 2. 不担忧循环引用。
不好的地方是 pydantic 这种依赖运行时 hint 的就不行
2021-01-26 18:33:06 +08:00
回复了 Rwing 创建的主题 Debian 来自 debian 团队的各大语言性能测试数据
@Flymachine 主要因为 Python 抛弃成本比较小。
go vs rust 也是经典了。go 败在 gc,rust 败在生命周期控制麻烦。
2021-01-26 16:06:38 +08:00
回复了 Rwing 创建的主题 Debian 来自 debian 团队的各大语言性能测试数据
@felixin Haskell 的背景是偏学术界的……
哲学系教授玩 Haskell 比我溜( pandoc 太好用了
2021-01-26 16:05:30 +08:00
回复了 Rwing 创建的主题 Debian 来自 debian 团队的各大语言性能测试数据
@Flymachine 其实是 Python 盯着半天 C++ 了,有个更舒服的选择自然转了。(我快了
盲盒是追求 “不确定的” 刺激,是类赌博行为
吃饭是满足 “确定的” 食欲
两个基础性质不一样的东西,放在一起只会打架。

这里的痛点是选择困难症。
作为与(自己的)选择困难症有丰富斗争历史的人,我觉得这样:
相比 “盲”,不如随机生成一餐,觉得不行可以 reroll 。
2021-01-26 00:24:56 +08:00
回复了 mightofcode 创建的主题 Java JAVA8 的 Optional 是鸡肋
同理 Checked exceptions 也一样,Python 不也能正常错误处理吗?
但为什么还是推荐 Checked exceptions 呢?
这是协作的问题,不是业务逻辑的问题
但是,缺乏语法糖也是一个问题。

另外,入参的问题,Optional 是协变的,所以不会用于入参……
2021-01-25 15:45:43 +08:00
回复了 getadoggie 创建的主题 硬件 隐私保护—驱动级别的疑问
@no1xsyzy 好,看了一眼 Hurd=GPLv2+
不通用,GPLv2+ 包含 GPLv3,GPLv4……
但是 Linux 的许多代码没有通过 GPLv3+ 授权。
Hurd 并不能直接把代码复制过去用。

再提一句,Intel 的 CPU (时间范围不确定)包含一个完整的 Minix 。
一个 CPU,里面有一个操作系统 ← ¿这什么操作?
2021-01-25 15:36:23 +08:00
回复了 getadoggie 创建的主题 硬件 隐私保护—驱动级别的疑问
@chinvo ( POSIX 是一个上至命令行参数下至进程信号的标准,Linux 和 GNU 组合起来实现了这个标准(的大部分?),并且还有扩充)
但目前来说 GNU/Linux 已经成为事实标准。

@getadoggie 那建议你关注、有条件的话宣传一下 RISC-V
不过我记得 Intel 的驱动是开源的或者有开源版本的来着?可能只是你的特定发行版裁剪掉了( Linux 内核可以裁到一个驱动都不带,也就是没法启动(真的有意义吗?)),或者你用的是 Hurd ?这里得说明一下,开源不代表相互通用。如果我猜得没错的话,Linux 是 GPLv2,Hurd 估计是 GPLv3+,两者并不互通。

另外,推荐一句话:你完全可以安全加固到不能使用的地步。
如果要 100% 安全,你至少需要:断网、关机、塞进保险箱、封进水泥、沉进东京湾。
There is always tradeoffs.
2021-01-25 15:18:20 +08:00
回复了 mostkia 创建的主题 问与答 一个数反复增减相同的百分比为什么会越来越小
@SWALLOWW “如果你亏,却最多只亏一个本金的钱。” —— 你不会加杠杆(
2021-01-25 14:02:05 +08:00
回复了 MrCurly 创建的主题 职场话题 连续远程工作十一个月,心理已接近崩溃
#59 +1
虽然有个体差异(分外向内向…… 不要看表现,得看这个人 “与别人待在一起” 是 “充电” 还是 “耗电”)
但基本上来说,即使是内向也无法保持彻底的孤独。
只不过内向者的社交需求量较低,也有上限,并不意味着没有需求。
具体如何去接触别人,方法上很多,至少就具体方法而言你肯定知道得比我多。

↑ 姑且挂个免责声明:不作为医疗建议或处方,具体请遵医嘱。
1 ... 74  75  76  77  78  79  80  81  82  83 ... 267  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   769 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 21:21 · PVG 05:21 · LAX 14:21 · JFK 17:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.