Maison  >  Article  >  développement back-end  >  Quelle est la méthode de livraison Python ? Accélérez cet article pour comprendre le passage des paramètres Python

Quelle est la méthode de livraison Python ? Accélérez cet article pour comprendre le passage des paramètres Python

Tomorin
Tomorinoriginal
2018-08-14 14:22:251685parcourir

Ceci est un article sur la Méthode de passage des paramètres Python. Il présente principalement la définition du paramètre Paramètre Python et sa Méthode de passage des paramètres Python Partagez-le. avec tout le monde Pour votre référence. L'analyse spécifique est la suivante :

Le soi-disant paramètre Python

Dans le paramètre python, le type appartient à objecter et la variable n'a pas de type :

a=[1,2,3]
 a="PHPCN"

Dans le code ci-dessus, [1,2,3] est de type List, "PHPCN" est de type String et la variable a n'a pas de type, elle est juste une référence à un objet (un pointeur), qui peut être un objet de type List ou pointer vers un objet de type String.

⊙ Objets mutables et immuables

En python, les chaînes, les tuples et les nombres sont des objets immuables, tandis que les listes, dict, etc. objets modifiables.

·Type immuable : la variable se voit attribuer a=5 puis a=10. Ici, un nouvel objet de valeur int 10 est effectivement généré, et a est pointé vers elle, tandis que 5. est supprimé, au lieu de changer la valeur de a, cela équivaut à une nouvelle génération de a.

·Type de variable : affectation de variable la=[1,2,3,4] puis affectation la[2]=5 consiste à modifier la valeur du troisième élément de la liste la Le changement lui-même n'est pas modifié, seules certaines de ses valeurs internes sont modifiées.

Méthode de transmission des paramètres Python :

·Type immuable : transmission de valeurs de type C++, telles que des entiers et des caractères Chaîne, tuple. Par exemple, fun(a) transfère uniquement la valeur de a et n'affecte pas l'objet a lui-même. Par exemple, modifier la valeur d'un intérieur fun(a) ne modifie qu'un autre objet copié et n'affecte pas a lui-même.

·Type de variable : similaire au passage de références C++, comme les listes et les dictionnaires. Par exemple, fun (la) passe en fait la. Après modification, la outside fun sera également affectée

Tout en python est un objet au sens strict, on ne peut pas dire s'il est passé par valeur ou par. référence. Il faut dire que passer des objets immuables et passer des objets mutables.

⊙python passe une instance d'objet immuable

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 def ChangeInt( a ):    
 a = 10
 b = 2ChangeInt(b)
 print b # 结果是 2

Il y a un objet int 2 dans l'instance et la variable pointant vers lui est b. Lors du passage à la fonction ChangeInt, la variable b est copiée par valeur. a et b pointent vers le même objet Int. Lorsque a = 10, un nouvel objet de valeur int 10 est généré et a pointe vers lui. .

⊙Pass instance d'objet variable

 #!/usr/bin/python
 # -*- coding: UTF-8 -*-
 # 可写函数说明def changeme( mylist ):   
"修改传入的列表"
   mylist.append([1,2,3,4]);   
 print "函数内取值: ", mylist
   return
 # 调用changeme函数
 mylist = [10,20,30];
 changeme( mylist );
 print "函数外取值: ", mylist

L'objet passé dans la fonction et l'objet pour ajouter du nouveau contenu à la fin sont utilisés La même référence, donc le résultat de sortie est le suivant :

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

Extension après-classe :

Lisez les fonctions personnalisées Python et les valeurs de retour des fonctions Python dans un seul article , avec des exemples détaillés


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn