Python 里有没有这种简单的方法?

2014-04-10 23:11:49 +08:00
 josephok
CoffeeScript中有一个Existential Operator(?号)。比如:singers?.Jagger表示singers有值时访问Jagger属性。Python中是否有这种简便方法?
3628 次点击
所在节点    Python
11 条回复
VeryCB
2014-04-10 23:20:19 +08:00
貌似只能 singers or singers.Jagger
RIcter
2014-04-10 23:24:08 +08:00
没有三目(或者类似于)这样的简单的方法
只有a = b if b else c这样..
zqqf16
2014-04-10 23:32:52 +08:00
a = b and b.c
skydiver
2014-04-10 23:34:13 +08:00
Python 连三目运算符都没有呢。。。别指望这个了
ryan10107
2014-04-11 10:13:33 +08:00
@skydiver python可以用and or达到三目运算符的效果。这是DIP给出的 (1 and [a] or [b])[0] ,可以看看这位博客的解释http://blog.chinaunix.net/uid-24673811-id-2005968.html
skydiver
2014-04-11 11:12:20 +08:00
@ryan10107 题主说的也是语法糖。不是不能实现,没有语法糖而已
wuhang89
2014-04-11 11:56:26 +08:00
python没有三目运算
davidli
2014-04-11 13:07:30 +08:00
在Python中, ?貌似只能出现在#后或者''' '''内部
mengzhuo
2014-04-15 12:47:21 +08:00
@skydiver

三目不就是
x = 1 if y else 0 吗
skydiver
2014-04-15 13:56:09 +08:00
@mengzhuo 我指的是问号冒号运算符
mengzhuo
2014-04-15 14:43:16 +08:00
@skydiver

这两者不就是等价的三元运算符?

x = 1 if y else 0
x = (y == True) ? 1:0

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/108054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX