OVH Cloud OVH Cloud

Petites questions théoriques : peut-on comparer une variable liste avec un pointeur en C?

26 réponses
Avatar
Francois
Bonjour à tous,

J'ai quelques questions qui peut-être auront un rapport avec
l'implémentation, mais cela m'intéresse quand même.


1) Quand on fait

a = 2
b = a

Les deux variables a et b sont deux variables différentes, la zone
mémoire allouée pour a et celle pour b sont distinctes. Une modification
de a n'affectera pas b etc. Chacun vit ça vie.

Ce qui me chagrine, c'est que id(a) et id(b) me donne exactement la même
valeur, alors que, pour moi, a et b sont distinctes. D'ailleurs quand je
modifie b (via b = 50 par exemple), là, ce petit coquin de Python ne me
donne plus le même id (et heureusement). Avez vous une explication ?


2) Pour les listes, c'est différent et c'est bien dit dans les docs. Par
exemple :

l1 = [0,1,2,3,4]
l2 = l1

J'ai bien compris que "le nom l2 est un alias du nom l1" qui désigne le
même objet dans la mémoire de l'ordinateur. Une modification via l1 se
retrouvera en appelant la liste via l2. Par exemple :

l1[0] = 100

entraînera l2 de la forme [100,1,2,3,4]

Je voulais trouver une petite explication à cela. J'aimerais avoir votre
avis. Je me suis dit que, peut-être, l1 et l2 étaient des sortes de
pointeurs (comme en C) sur le premier élément de la liste.


3) J'ai lu ceci "avec a = 3, a est une référence, c'est-à-dire un nom
désignant l'emplacement mémoire d'une valeur (objet)". Cela veut-il dire
qu'en fait les variables dans Python sont toutes "des pointeurs en C" ?



--
François

6 réponses

1 2 3
Avatar
Amaury Forgeot d'Arc
Heu, OP, ça veut dire quoi ?


C'est du jargon de forum, tiré de l'anglais qui plus est:
Original Poster, ou bien "Orateur Primordial".

--
Amaury

Avatar
Francois
Heu, OP, ça veut dire quoi ?


C'est du jargon de forum, tiré de l'anglais qui plus est:
Original Poster, ou bien "Orateur Primordial".


Merci. En fait, Bruno m'avait déjà répondu sur ce point. :-)

Petit à petit, on finit par connaître ces abréviations mais souvent on
ose pas demander. Par exemple, j'ai mis du temps pour comprendre "ÀMHA"
("à mon humble avis"). :-))


--
François


Avatar
Jean-Baptiste renard
Francois wrote:

Heu, OP, ça veut dire quoi ?


C'est du jargon de forum, tiré de l'anglais qui plus est:
Original Poster, ou bien "Orateur Primordial".


Merci. En fait, Bruno m'avait déjà répondu sur ce point. :-)

Petit à petit, on finit par connaître ces abréviations mais souvent on
ose pas demander. Par exemple, j'ai mis du temps pour comprendre "ÀMHA"
("à mon humble avis"). :-))


Moi, j'ai une petite astuce. j'associe l'abbréviation avec le mot jargon

dans google. Ca fonctionne 99 fois sur 100 :)

exemple http://www.google.fr/search?q=jargon%20AMHA



Avatar
Méta-MCI \(MVP\)
Bonsoir !

En jargonnant sur Google, je suis tombé sur ça :
http://www2.cnrs.fr/presse/journal/2652.htm

C'est toi ?

@+

MCI
Avatar
Jean-Baptiste renard
Méta-MCI (MVP) wrote:
En jargonnant sur Google, je suis tombé sur ça :
http://www2.cnrs.fr/presse/journal/2652.htm

C'est toi ?


Non, non.

Avatar
BertrandB
(snip)
T'inquiètes pas, t'es pas le premier (et c'est pas non plus la
première fois que j'explique ça).


Ah, désolé. Faut dire, à ma décharge, que tout cela n'est pas vraiment
bien expliqué dans le peu de livres que j'ai.


Faudrait p'tet que j'en écrive un alors !-)

Plus sérieusement: vu la diversité de parcours de débutants en Python,
écrire un texte qui convienne à tous est une gageure.


Pourtant "Python Poésie" serait un bon titre



1 2 3