Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3315946
  • 博文数量: 815
  • 博客积分: 12898
  • 博客等级: 上将
  • 技术积分: 7883
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-25 09:57
文章分类

全部博文(815)

文章存档

2014年(1)

2011年(46)

2010年(192)

2009年(121)

2008年(70)

2007年(385)

分类: Python/Ruby

2007-11-09 14:49:27

>>> a = ""
>>> b = "second"
>>> (1 and [a] or [b])[0]
''
  由于 [a] 是一个非空列表,所以它决不会为假。即使 a 是 0 或者 '' 或者其它假值,列表 [a]
  也为真,因为它有一个元素。
到现在为止,这个技巧可能看上去问题超过了它的价值。毕竟,使用 if 语句可以完成相同的事
情,那为什么要经历这些麻烦事呢?哦,在很多情况下,你要在两个常量值中进行选择,由于你知
道 a 的值总是为真,所以你可以使用这种较为简单的语法而且不用担心。对于使用更为复杂的安
全形式,依然有很好的理由要求这样做。

阅读(1488) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~