Tous les arguments Python sont passés par référence

Il semble. Je ne savais pas. Ou plutôt, je m'en fichais vraiment.

Je pensais que int était traité spécialement et passé par valeur du point de vue du comportement, mais il était passé par référence pour "all".

Voici une expérience avec ipython.

In [27]: i = 1

In [28]: id(i)
Out[28]: 140513240953112

In [29]: def func(a):
   ....:     print a, id(a)
   ....:     a += 1
   ....:     print a, id(a)
   ....:     return a
   ....: 

In [30]: b = func(i)
1 140513240953112	<-Même endroit jusqu'à présent(id)Référencement
2 140513240953088 <-Un autre endroit ici(id)Copié dans

In [31]: id(b)
Out[31]: 140513240953088

Un autre exemple

In [32]: i = 1

In [33]: id(i)
Out[33]: 140513240953112

In [34]: def func(a):
   ....:     print a, id(a)
   ....:     return a
   ....: 

In [35]: b = func(i)
1 140513240953112

In [36]: id(b)
Out[36]: 140513240953112	<-Encore une fois au même endroit que je(id)Référencement

In [37]: b
Out[37]: 1	<-Lecture depuis le même endroit que je

In [38]: b += 2 <-Un autre endroit ici(id)Copié dans

In [39]: id(b)
Out[39]: 140513240953064 <-Tu vois, c'est étrange

Hey. Voilà ce que c'est.

référence

Impressions

Quand j'ai essayé de m'accorder avec python, le coût de référence via l'index Array est devenu un goulot d'étranglement jusqu'à la fin. Eh bien, si vous êtes familier avec python, vous pourrez peut-être toujours le faire, mais il est plus rapide de changer de langage que d'essayer dur avec python, il est donc nécessaire de plonger dans la partie profonde de python. Il n'y a pas. Je suis intéressé.

En tant qu'option pour changer de langue, je passe facilement en C / C ++ maintenant, mais je pense qu'il est nécessaire de rendre le langage Go plus réactif. Je pense. vraiment.

fin.

Recommended Posts

Tous les arguments Python sont passés par référence
Python> ceux-ci sont tous considérés comme faux:
Python> dictionnaire> values ()> Obtenir toutes les valeurs à l'aide de values ()
À propos de la référence Python
Page de référence Python
Exécutez Power Query en passant des arguments à Python
Que sont les taples et * args python après tout?
Le VIF calculé par Python et le VIF calculé par Excel sont différents .. ??
Les arguments par défaut de Python ne sont pas initialisés à chaque appel
Jugement des nombres premiers par Python
À propos des arguments de fonction (python)
Mémo de visualisation par Python
Traitement de la communication par Python
Les classes Python sont lentes
Python: à propos des arguments de fonction
Passer par valeur, passer par référence, passer par référence,
Réponse de Beamformer par python
Résumé des arguments Python
À propos de __all__ en python
Assurez-vous que tous les éléments de la liste sont les mêmes en Python
Le douzième problème de référence d'écriture en temps réel hors ligne. Implémenté par python