Demande d'info python

Je viens vers vous, car là je découvre à l’instant python. J’ai l’habitude du C++, et donc il va faloir un temps d’adaptation !
Je suis en train de gratter les sources de FreeCAD, et je viens de tomber là dessus, le programme plante lamentablement à cette ligne:
val = str(obj.Color[:3])
Que veulent dire ces deux points entre corchet ? Les crochers sont normalement synonyme de tableau et ne prennent que des valeurs int :face_with_raised_eyebrow:
Ou alors c’est une faute de frappe, et le gars à inséré un smiley bisous à la place d’une valeur d’index ^^
ah oui et puis si je met pas le message d’erreur :

<class 'RecursionError'>: maximum recursion depth exceeded while getting the repr of an object

Bonjour,

Il s’agit d’un slice sur un élément de type séquence. Prenons l’exemple d’une liste :

>>> maliste = ['a','b','c','d']
>>> maliste[0]
'a'
>>> maliste[1:3]
['b', 'c']
>>> maliste[0:3]
['a', 'b', 'c']
>>> maliste[:3]
['a', 'b', 'c']
>>> maliste[2:]
['c', 'd']

Avant le “:”, on précise l’index de la valeur pour débuter le slice, et après la fin. Si il n’y a rien, on prend depuis le début de la liste.

1 J'aime

Donc en gros là on est en train de dépasser la taille du tableau/séquence avec le slice ??
genre on a un tableau/séquence vide ?

Non : la fonction str() tente de donner une représentation de l’objet, mais pour une raison ou une autre, la méthode de représentation semble appeler l’objet en boucle infinie.
Difficile de dire pourquoi exactement sans le reste du code.

Salut!
Un problème tout bête peu parfois être en cause comme quelle version de pyton est utilisé? Entre python 2 et 3 il y a de grosses modifications.