大部分学自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 '<A> name: {}, num: {}’.format(self.name, self.num)
然后才能进行创建。如果使用nametuples的话,这个例子会变成这样:
import collections
A = 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)
<未完待续>
<未完待续>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。