理解pythonic概念

pythonic可以定义为:充分体现python自身特色的代码风格。

在语法上,举个常见的例子,在其他语言(如C)中,两个变量的交换:

int a = 1, b = 2;

int tmp = a; a = b; b = tmp;

利用python的packaging/unpackaging机制,pythonic的代码就需一行:

a, b = b, a


另外,遍历一个容器时,类似其他编程语言的代码如下:

length = len(alist)

i = 0

while i < length

do_sth_with(alist[i])

i+=1

而pythonic的代码如下

for i in alist

do_sth_with(i)


故pythonic的一个药酒就是对python语法本身的充分发挥,写出来的代码带着python味儿。


编写python代码时,应该充分利用python的语法,但不应过分的使用奇技淫巧,比如利用python的slice语法,可以写出如下代码

a = [1,2,3,4]

b = 'asdfghjkl'

print a[::-1]

print b[::-1]

对于这样一段代码恐怕不是一眼就可以看出其作用,实际上更好的体现pythonic的代码是充分利用python库里的reversed()函数:

print list(reversed(a))

print list(reversed(b))

写pythonic的代码需要对标准库有充分的理解,特别是内置函数和内置数据类型。

比如对字符串初始化:print 'hello %s!' % ('Tom', )

%s是非常影响可读性的,因为数量多了以后,很难清除哪一个占位符对应哪一个实参

对应的pythonic的代码应该是这样的

print 'Hello %(name)s!' % {'name' : 'Tom'}


针对 value = {'greet': 'Hello world', ''language': 'python'}

print ='%(greet)s from %(language)s.' % value

更pythonic的代码如下:

print ‘{greet} from {language}.' .format(greet = 'Hello world', language: 'python')


str.format()方法非常清晰地表明了语句的意图,事实上,str.format()也成为python最为推荐的字符串格式化方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值