ihawk 最近的时间轴更新
ihawk

ihawk

V2EX 第 218629 号会员,加入于 2017-03-03 10:57:56 +08:00
ihawk 最近回复了
很难得,真的太好了,感谢开源了这么实用又复杂的项目
@AX5N 不是吧,哪有这么武断的,从强类型到弱类型,是一个渐变的过程。从维基百科 [https://zh.wikipedia.org/wiki/%E5%BC%B7%E5%BC%B1%E5%9E%8B%E5%88%A5] 列出的一系列“强类型”要素来看,以下几条 Python 肯定是不符合的:

* 类型是与变量相连系的名称(通常是在声明时),而不是值(通常是在初始化时)
* 拒绝(在要么编译时间要么运行时间)尝试忽视资料类型的操作或函数调用
* 禁止类型转换。某个类型的值,不论是不是以显式或隐式的方式,都不可转换为另一个类型。

显然它的类型系统不是那么“强”。

当然, 这不是本帖的重点,而且 Benjamin 也说了:“这些术语的用法不尽相同,所以也就近乎无用”。
@xiri 嗯,我是这样理解“强类型”的:就是一个变量或属性,声明的时候是什么类型,赋值的时候,就必须是这个类型。从这个意思上,Python 应该不属于强类型。Python 的数据类型设计思路不也称为“duck typing”么:只要看起来像是这个类型,就可以用了,至于它本来如何声明的,不重要。

所以我这个小工具(包括 dacite ),可能不太 pythonic,不过语言都在互相借鉴,PEP 这两年也一直在加强类型声明。
@weyou 理解你的意思了,目标不太一样,你的项目是想尽量方便地把 dict 转换成对象,实现得还挺强大的。不过我这里是假设已经有业务对象了,就是想按指定的类型反序列化。
@hsfzxjy 好, 我也看看 dataclasses 装饰器,dacite 好像是要求必须要用这个装饰器的
@lishunan246 哎,看了一下,dacite 好像还真是做这个的,而且做得挺完整,看来又重新造轮子了。我再仔细研究研究。
@hsfzxjy 谢谢,我去看看 literal_eval,不过我在 eval 的时候,已经清空了所有环境,只保留最基本的表达式解析,还是比较安全的。
129 天前
回复了 lzjun 创建的主题 分享创造 微信公众号数据监测网站
蛮不错的,但不能试用一下么?第一次使用就要付费,况且还是 10 元 /次,总有点不太甘心啊。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4141 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 03:31 · PVG 11:31 · LAX 19:31 · JFK 22:31
♥ Do have faith in what you're doing.