python 萌新(学了 3 个月左右还算吗)
一直用 condition and true or false
这个三目运算表达式(因为比 true if condition else false
少一个字符...)
今天码程序的时候发现用前一种表达式得到的结果非预期
Python 3.4.2 和 2.7.9 测试过都一样
from dogpile.cache import make_region
from dogpile.cache.api import NoValue
cache = make_region().configure(
'dogpile.cache.dbm', arguments={'filename': '/tmp/cache.dbm'})
session = cache.get('NO_EXISTS_KEY')
print(isinstance(session, NoValue) and None or session)
print(None if isinstance(session, NoValue) else session)
# Output <dogpile.cache.api.NoValue object at 0x107611c10>
# Output None
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.