>>> title = 'My Title'
>>> title ?? 'Default Title'
'My Title'
>>> title = None
>>> title ?? 'Default Title'
'Default Title'
另外这是之前关于插值糖的讨论 http://v2ex.com/t/211863
1
zhicheng 2015-09-20 14:01:58 +08:00
已经不看好 Python 3 的发展了。
|
2
Septembers 2015-09-20 14:02:08 +08:00 via Android
其实"??"换成"or"也是可以的
|
3
dingyaguang117 2015-09-20 14:07:52 +08:00 via iPhone
一直用 or
|
4
xierch 2015-09-20 14:12:33 +08:00
和 or 不一样, or 只要是 false 的行,?? 要求 None
|
5
aec4d 2015-09-20 14:18:58 +08:00
看原文和 or 不一样 只针对 None 值 黑魔法的是可以针对成员访问和索引访问加?不存在就返回 None
黑魔法越来越多 我等着用 python4 |
6
Hyperion 2015-09-20 14:22:11 +08:00 via Android
py3lint 指日可待
|
7
introom 2015-09-20 14:31:38 +08:00
这种??太丑,必须被 reject
|
8
otakustay 2015-09-20 14:55:24 +08:00
这不是 C#的某语法吗, C#程序员表示用得很爽啊
|
9
codeforlife 2015-09-20 15:06:12 +08:00
没觉得有什么问题啊
|
10
phx13ye 2015-09-20 15:14:03 +08:00
防火防盗防 NONE ,弱弱的问一下: None 这个东西既然大家都在防一开始为什么要造出来啊
|
11
fengdra 2015-09-20 15:33:52 +08:00
not defined 行不行
|
12
Sin 2015-09-20 16:21:33 +08:00
我大 C#威武
|
14
firemiles 2015-09-20 16:37:44 +08:00
我还以为是要加 ruby 里最爽的的 has? replace! 这样的语法糖,这两个语法糖真的很方便, python ??的语法糖用一个函数代替好了,有必要用语法糖吗?@ethego
|
15
fy 2015-09-20 16:41:37 +08:00
太丑,我觉得?=都比??好
|
17
liuxu 2015-09-20 16:43:33 +08:00
看着逻辑像 linux 脚本。。
|
18
ethego 2015-09-20 16:46:16 +08:00
@firemiles 语法糖这种东西本来就是不想用就不用好了,非逼着用语法糖啊? py3 里解决了一些细小的遗留问题,比方说 None 改成关键字, print 改成函数,默认 utf8 编码,这些边边角角的细节修改都是会经常用到的好特性。再就是 map/reduce/filter 这些函数都只接受生成器返回生成器了,非常棒地解决了递归的问题。这些特性让我不能不爱上 py3
|
19
akagi 2015-09-20 17:07:11 +08:00
纠结语法糖不如用 Perl, 想怎么写,就能怎么写,别人还不敢说你的不是 :)
|
20
est 2015-09-20 17:16:48 +08:00
为毛不学习 ruby 的 ||= 。还可以一句话写 cache 。
|
21
firemiles 2015-09-20 18:19:41 +08:00
@ethego 首先我也很喜欢 python3 ,因为不用纠结编码问题。但是这个语法糖加多了虽然自己不用,可是别人会用啊,看代码会比较麻烦。还有 python3 把 print 变成函数就是减轻语法负担,统一代码书写形式,但却又加上这种并不重要的语法糖,增加语法复杂度,把这个做成函数放库里不好吗。还有 ruby 的 replace! 之类的 api 真的很好,什么时候 python 能加上啊。
|
23
zonghua 2015-09-20 18:26:09 +08:00
语法糖堪比 matlab
|
24
wizardforcel 2015-09-20 19:05:31 +08:00
明显是跟 c#学的。
话说怎么不把 ruby 的<=>也学来 |
25
otakustay 2015-09-20 19:48:36 +08:00
C#好像快要出一个叫“不能为 null 的类型”的类型了,其它没这特性的语言也可以参考
|
27
linchunai1212 2015-09-20 22:54:00 +08:00
3.5 还加入 @ 感觉丑
|
28
latyas 2015-09-20 22:59:59 +08:00
不就是 or 么
|
29
poke707 2015-09-20 23:45:17 +08:00 via Android
这个语法糖是不错,但"??"这个写法真的觉得风格不一致
|
30
minsheng 2015-09-21 06:53:54 +08:00
这么麻烦真是无聊,学习 Swift 来个 sum type 什么都好了。
(我知道 Swift 抄 Rust 抄 Haskell 抄 ML ) |
31
ophunter 2015-09-21 10:17:20 +08:00
C# 威武,从小弟变成了领导者
|
33
glasslion 2015-09-21 16:05:54 +08:00
??这个操作符有点鸡肋, 但这个 PEP 还打算引入涉及成员访问的操作符, Coffee script 里用起来会很爽啊
Null-Aware Member Access Operator >>> title?.upper () None Null-Aware Index Access Operator >>> person?['name'] None |