Python a-t-il des pointeurs ?

爱喝马黛茶的安东尼
Libérer: 2019-06-18 17:10:11
original
26471 Les gens l'ont consulté

Python a une bonne encapsulation des pointeurs. Tout est un "objet", et chaque objet a une "variable" pointant vers lui. Cette « variable » est un « pointeur ». Comme Java, il ne peut pas se déplacer de manière aléatoire ni effectuer de calculs. Inclure une fonction est également un "objet". Pointer une variable vers elle pointe vers l'adresse d'entrée de la fonction.

Python a-t-il des pointeurs ?

Le pointeur vers l'adresse d'entrée de fonction en C++ est appelé pointeur de fonction. Par conséquent, nous empruntons également ce terme à Python.

Par exemple, j'écris un segment de code de tri et j'utilise le tri en STL :

int arr[10]={5,8,4,7,6,5,7,4,2,9};
std::sort(arr,arr+10);
Copier après la connexion

La valeur par défaut est l'ordre croissant. Si je veux des critères de tri particuliers, je dois fournir un troisième paramètre. Le troisième paramètre est un pointeur de fonction. Le principe du tri est qu'en supposant que b est avant a dans la séquence d'origine, l'échange se produit lorsque la valeur de retour de la fonction appelée par le pointeur de fonction pf(a,b) est vraie. Lorsque false est renvoyé, cela est lié à l'algorithme de tri. Par exemple, le tri est un tri instable, il est donc toujours possible d'échanger des positions lorsque les deux nombres sont égaux.

Recommandations associées : "Tutoriel vidéo Python"

Nous écrivons un tri décroissant. Ensuite, vous devez d'abord écrire une fonction de comparaison cmp :

bool cmp(int a,int b)
{
    return a>b;//当后面的数大于前面时交换
}
Copier après la connexion

Ensuite, le nom de la fonction est son adresse d'entrée, nous le transmettons donc :

std::sort(a,a+10,cmp);
Copier après la connexion

C'est similaire en Python, en supposant qu'il y ait une fonction de tri de liste Sort(list, cmp)

Ensuite, cmp est aussi un "objet", qui peut transmettre l'adresse d'entrée de la fonction. L'instruction appelante est la suivante :

def cmp(a,b):return a>b
li=[5,8,4,7,6,5,7,4,2,9]
Sort(li,cmp)
Copier après la connexion

est similaire à la fonction d'un pointeur de fonction.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal