Bor*_*ide 5 python django queue django-models
我是Django的新手,我正在尝试自己建立一个博客.我正在尝试创建一个我在Drupal中使用nodequeue模块实现的功能.
我想要做的是能够创建对象的队列,例如,博客文章的队列.下面,我将描述我如何想象队列的工作原理:
这种特征如何有用的一个例子是创建特色帖子队列.
我目前的知识不允许我弄清楚什么是正确的方法.我会很感激任何指针.
提前致谢
这是一种方法:
import collections, datetime, itertools
class nodequeue(object):
def __init__(self, N):
self.data = collections.deque(N * [(None, None)])
def add(self, anobj):
self.data.popleft()
self.data.push((anobj, datetime.datetime.now())
def __iter__(self):
it = iter(self.data)
return it.dropwhile(lambda x: x[1] is None, self.data)
Run Code Online (Sandbox Code Playgroud)
这忽略了"排序"的需求,但这不会太难添加,例如:
class nodequeueprio(object):
def __init__(self, N):
self.data = collections.deque(N * [(None, None, None)])
def add(self, anobj, prio):
self.data.popleft()
self.data.push((anobj, datetime.datetime.now(), prio)
def __iter__(self):
it = iter(self.data)
return sorted(it.dropwhile(lambda x: x[1] is None, self.data),
key=operator.itemgetter(2))
Run Code Online (Sandbox Code Playgroud)
我认为用占位符预填充队列None
简化了代码,因为add
在添加新东西之前总是可以删除最左边(最旧或无)的项目 - 即使__iter__
必须删除占位符,这也不是太糟糕.
归档时间: |
|
查看次数: |
1884 次 |
最近记录: |