Classe de traitement de page

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()

Recommended Posts

Classe de traitement de page
classe
classe
Traitement arithmétique dans la classe de nombres Kanji
Fragments de page
Variable de classe
Variable de classe
Héritage de classe
Classe abstraite
Résumé du traitement pickle et unpickle des classes définies par l'utilisateur