Python中那些中那些 Pythonic的写法详解的写法详解
主要介绍了Python中那些 Pythonic的写法详解,一份优雅、干净、整洁的代码通常自带文档和注释属性,读代
码即是读作者的思路,需要的朋友可以参考下
前言前言
Martin(Bob大叔)曾在《代码整洁之道》一书打趣地说:当你的代码在做 Code Review 时,审查者要是愤怒地吼道:
“What the fuck is this shit?”
“Dude, What the fuck!”
等言辞激烈的词语时,那说明你写的代码是 Bad Code,如果审查者只是漫不经心的吐出几个
“What the fuck?”,
那说明你写的是 Good Code。衡量代码质量的唯一标准就是每分钟骂出“WTF” 的频率。
一份优雅、干净、整洁的代码通常自带文档和注释属性,读代码即是读作者的思路。Python 开发中很少要像 Java 一样把遵循
某种设计模式作为开发原则来应用到系统中,毕竟设计模式只是一种实现手段而已,代码清晰才是最终目的,而 Python 灵活
而不失优雅,这也是为什么 Python 能够深受 geek 喜爱的原因之一。
上次写了一篇:如何更优雅地写python代码,今天就接着这个话题写点 Python 中那些 Pythonic 的写法,希望可以抛砖引玉。
1、链式比较操作、链式比较操作
age = 18
if age > 18 and age < 60:
print("young man")
pythonic
if 18 < age < 60:
print("young man")
理解了链式比较操作,那么你应该知道为什么下面这行代码输出的结果是 False。
>>> False == False == True
False
2、、if/else 三目运算三目运算
if gender == 'male':
text = '男'
else:
text = '女'
pythonic
text = '男' if gender == 'male' else '女'
在类C的语言中都支持三目运算 b?x:y,Python之禅有这样一句话:
“There should be one-- and preferably only one --obvious way to do it. ”。
能够用 if/else 清晰表达逻辑时,就没必要再额外新增一种方式来实现。
3、真值判断、真值判断
检查某个对象是否为真值时,还显示地与 True 和 False 做比较就显得多此一举,不专业
if attr == True:
do_something()
if len(values) != 0: # 判断列表是否为空
do_something()
pythonic
if attr:
do_something()
if values:
do_something()
真假值对照表: