首发自
大部分学自Fluent Python
使用nametuple
nametuple用来构建只有少数属性但是没有方法的对象,比如数据库条目。
<!--more-->
使用python的时候经常会出现这样的问题,我想构建一个很简单的类来进行测试,但是我不得不书写大量的代码,例如
class A: name = None num = None def __init__(self, name, num): self.name = name self.num = num def __str__(self): return ' name: {}, num: {}’.format(self.name, self.num)
然后才能进行创建。如果使用nametuples的话,这个例子会变成这样:
import collectionsA = collections.namedtuple(‘A', ['name', 'weight'])
这个时候代码量相对较少。
Python模仿Bash管道编程
这个用法十分有趣,重载|
操作符来完成这个操作。
class Pipe(object): def __init__(self, func): self.func = func def __ror__(self, other): def generator(): for obj in other: if obj is not None: yield self.func(obj) return generator() @Pipe def even_filter(num): return num if num % 2 == 0 else None @Pipe def multiply_by_three(num): return num*3 @Pipe def convert_to_string(num): return 'The Number: %s' % num @Pipe def echo(item): print item return item def force(sqs): for item in sqs: pass nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] force(nums | even_filter | multiply_by_three | convert_to_string | echo)
<未完待续>
<未完待续>