Une classe de traitement de page telle que "Goooooooooogle". Si vous transmettez le nombre total d'éléments, le nombre d'éléments par page et le nombre de pages à afficher en même temps dans le constructeur, et passez la page actuellement affichée dans la méthode de contenu, le nombre minimum de pages est renvoyé en min et le nombre maximum de pages est renvoyé en max. viens. Je veux écrire plus élégamment.
#coding:utf-8
'''
Created on 2012/09/23
@author: fumix
'''
class Pager():
'''
Classe de traitement de page
'''
def __init__(self,total,page,width):
'''
Constructor
'''
self.total = total
self.page = page
self.width = width
def content(self,current):
#Nombre maximum de pages
max_pagecount = self.total / self.page + 1
#Nombre maximum de pages<Lorsque le nombre de pages affichées
if max_pagecount < self.width:
min = 1
max = max_pagecount
#Nombre maximum de pages<Page actuelle+Lorsque la moitié du nombre de pages affichées
elif max_pagecount < current + self.width / 2 :
min = current - self.width / 2
max = max_pagecount
#Page actuelle-La moitié du nombre de pages affichées<Quand 1
elif current - self.width / 2 < 1:
min = 1
max = self.width
#autre que ça
else:
min = current - self.width / 2
max = current + self.width / 2
return {'min':min,'max':max}
def _test():
page = Pager(532, 20, 10)
print page.content(22)
if __name__ == '__main__':
_test()