Hier j'ai demandé (« Un cas de listes d'ensembles se comportent différemment en Python 2.5 (je pense à l'extérieur égale ...) ») pourquoi la liste W construit comme suit:Existe-t-il un moyen d'inspecter les structures internes (différentes) des objets Python qui testent comme égal (==)?
r_dim_1_based = range(1, dim + 1)
set_dim_1_based = set(r_dim_1_based)
def listW_fill_func(val):
if (val == 0):
return set_dim_1_based
else:
return set([val])
W = [ listW_fill_func(A[cid])
for cid in r_ncells ]
ne se comportait pas comme je m'y attendais. En particulier, il ne se comportait pas comme les autres listes qui montraient une égalité avec lui (another_list == W -> True).
Y a-t-il un utilitaire, une astuce, un builtin, tout ce qui m'aurait montré ces différentes structures internes? Quelque chose qui aurait produit peut-être une déclaration C-like des objets de sorte que j'aurais vu immédiatement que j'avais affaire à des pointeurs dans un cas (liste W) et des valeurs dans les autres?
Je ne comprends pas encore la question. Python fait tout avec des objets. Toute liste est une collection de références à des objets. Lorsque vous comparez deux listes, si elles ont la même longueur, et si chacun de leurs objets respectifs renvoie égal lors de la comparaison, les listes retournent égales. Python a aussi un opérateur 'is' qui vérifie l'identité de l'objet; peut-être pouvez-vous utiliser 'is' pour inspecter les choses afin de mieux comprendre ce qui se passe. – steveha
@steveha: Coupable d'appeler une copie superficielle d'un objet une 'valeur' et une référence à l'objet original un 'pointeur'. Le point de la question est dans votre quatrième phrase: "si" je suis allé et ai fait toutes ces choses, alors, oui, je pouvais voir que deux objets qui semblaient égaux (par ==) étaient différents, mais c'est trop comme le travail. Je désire un outil de débogage de sorte que dans une seconde ou deux je peux avoir les différences montrées à moi. Graphique, quelque chose comme les spécifications pour une structure C, par ex. --- – behindthefall