[PYTHON] Attention à la valeur de retour de __len__

Lorsque j'ai remplacé «len» sur ma classe et que je l'ai appelé, l'erreur suivante s'est produite.

OverflowError: cannot fit 'int' into an index-sized integer

La cause était dans la spécification «len». Apparemment, la valeur de retour de «len» doit remplir les conditions suivantes.

--Type entier (int) --0 ou plus


class ReturnStr(object):
    def __len__(self): return "abc"

class ReturnFloat(object):
    def __len__(self): return 1.0

class ReturnNegativeNumber(object):
    def __len__(self): return -1

class ReturnBigNumber(object):
    def __len__(self): return 0x7FFFFFFF + 1

class ReturnSmallNumber(object):
    def __len__(self): return 0x7FFFFFFF

if __name__ == "__main__":
    len(ReturnStr())            #=> TypeError: 'str' object cannot be interpreted as an integer
    len(ReturnFloat())          #=> TypeError: 'float' object cannot be interpreted as an integer
    len(ReturnNegativeNumber()) #=> ValueError: __len__() should return >= 0
    len(ReturnBigNumber())      #=> OverflowError: cannot fit 'int' into an index-sized integer
    len(ReturnSmallNumber())    #=> OK

Dans mon cas, il semble qu'il s'agissait d'une exception car la valeur de retour de __len__ était trop grande (´ ・ ω ・`)

Recommended Posts

Attention à la valeur de retour de __len__
À propos de la valeur de retour de pthread_mutex_init ()
À propos de la valeur de retour de l'histogramme.
Attention à randint
Attention aux variables globales en dehors de lambda_handler (datetime)
L'histoire selon laquelle la valeur de retour de tape.gradient () était None
La valeur de retour de len ou unichr peut changer selon qu'il s'agit de UCS-2 ou UCS-4.
Trouvez la définition de la valeur de errno
Vérifiez la valeur de retour avec PEP 380
25/03/2015 python> Commentaire sur plusieurs lignes> Attention au retrait
La troisième nuit de la boucle avec pour
Pandas du débutant, par le débutant, pour le débutant [Python]
Obtenez la valeur de la couche intermédiaire de NN
La deuxième nuit de la boucle avec pour
Obtenez la valeur de retour d'un script shell externe (ls) avec python3
Rendre la valeur par défaut de l'argument immuable
L'histoire selon laquelle le coût d'apprentissage de Python est faible
La valeur de pyTorch torch.var () n'est pas distribuée
Essayez de décomposer la matrice daimyo par valeur singulière
Découvrez la fraction de la valeur saisie en python
Traitement d'image? L'histoire du démarrage de Python pour
Découvrez le jour par date / heure
Code pour vérifier le fonctionnement de Python Matplot lib
Rechercher par la valeur de l'instance dans la liste
Valeur de retour de quit () -Y a-t-il quelque chose retourné par la "fonction qui termine tout"?
Voir ici pour la quantité de mémoire libre de la commande free
[Python of Hikari-] Chapitre 06-04 Fonctions (arguments et valeurs de retour 3)
Ajouter des attributs d'objets de classe avec une instruction for
[Python of Hikari-] Chapitre 06-02 Fonction (argument et valeur de retour 1)
Autour de l'endroit où la valeur d'Errbot est stockée
J'ai essayé le tutoriel MNIST de tensorflow pour les débutants.
Renvoie la quantité d'entités encodées à chaud à la valeur de catégorie d'origine
[Python] Calculez la valeur moyenne de la valeur de pixel RVB de l'objet
Découvrez la version de la langue que vous utilisez
Récupérer le code retour d'un script Python depuis bat
[Langage C] [Linux] Récupère la valeur de la variable d'environnement
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Rendre la valeur par défaut de l'argument immuable (explication de l'article)
J'ai vérifié les versions de Blender et Python
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
Découvrez l'emplacement des packages installés avec pip
[Golang] Spécifiez un tableau pour la valeur de la carte
Techniques pour comprendre la base des décisions d'apprentissage en profondeur
Compensez le manque de référence Maya Node
Vérifier l'existence de tables BigQuery en Java
Attribuer une date au nom du PDF décomposé pour chaque page
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Points à garder à l'esprit lors de la migration avec Django
[Python of Hikari-] Chapitre 06-03 Fonctions (arguments et valeurs de retour 2)
[JVM] OOM (Out Of Memory) Connaissances nécessaires pour le dépannage
[Pour les débutants] Quantifier la similitude des phrases avec TF-IDF
J'ai recherché le contenu de l'agent CloudWatch Logs
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant