데이터 모델(__getitem__())

3708 단어 python

데이터 모델



Quand dans un script Python on fait my_object[i] c'est que l'objet my_object est une instance d'une classe qui a une méthode spéciale __getitem__(self) . Un example ci dessous.

Sans la méthode spéciale




class Building:
    def __init__(self, n_flats):
        self.__flats = [i for i in range(n_flats)]

building = Building(10)

building[4]



---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [1], in <module>
      3         self.__flats = [i for i in range(n_flats)]
      5 building = Building(10)
----> 7 building[4]
​
TypeError: 'Building' object is not subscriptable


아벡




class Building:
    def __init__(self, n_flats):
        self.__flats = [i for i in range(n_flats)]

    def __getitem__(self, i):
        return f"You have selected the building #{self.__flats[i]}"

building = Building(10)

building[4]



'You have selected the building #4'


L'utilisation de '[i]' est un raccourcis de my_object.__getitem__() . Une liste par exemple est une instance de classe qui a cette méthode implémentée

원천



유창한 Python - Luciano Ramalho

좋은 웹페이지 즐겨찾기