Maison  >  Article  >  développement back-end  >  Black Horse Cloud Classroom 8 jours de compréhension approfondie du matériel vidéo Python

Black Horse Cloud Classroom 8 jours de compréhension approfondie du matériel vidéo Python

巴扎黑
巴扎黑original
2017-08-25 14:53:192280parcourir

Python est un langage de programmation informatique interprété et orienté objet inventé par Guido van Rossum en 1989. La première version publique a été publiée en 1991. Python est un logiciel purement libre. Le code source et l'interpréteur CPython suivent l'accord GPL (GNU General Public License). La syntaxe Python est concise et claire, et l'une de ses caractéristiques est l'utilisation forcée d'espaces blancs comme indentation des instructions. Python possède des bibliothèques riches et puissantes. Il est souvent surnommé le langage colle, qui permet de connecter facilement différents modules réalisés dans d'autres langages (notamment C/C++) entre eux. "Tutoriel vidéo de compréhension approfondie de 8 jours de Black Horse Cloud Classroom sur Python" vous donnera une compréhension approfondie du langage Python.

Black Horse Cloud Classroom 8 jours de compréhension approfondie du matériel vidéo Python

Adresse de lecture vidéo : http://www.php.cn/course/556.html

Difficultés de cette vidéo Cela réside dans l'appel au C/C++ :

1. Python appelle la bibliothèque de liens dynamiques C


Python appelle la bibliothèque C est relativement simple et est emballé dans Donc, utilisez simplement l'appel ctypes de python.
(1) Fichier de langage C : pycall.c

/***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include #include
int foo(int a, int b)
{
printf("vous avez saisi %d et %dn", a, b);
return a+b
}

(2) Gcc compile et génère la bibliothèque dynamique libpycall.so : gcc -o libpycall.so -shared -fPIC pycall.c. Lorsque vous utilisez g++ pour compiler des fonctions ou des méthodes dans le code qui génère des bibliothèques dynamiques C, vous devez utiliser extern "C" pour la compilation.

(3) Python appelle le fichier de bibliothèque dynamique : pycall.py
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print '***finish***'

(4) Résultats d'exécution :

2. Python appelle C++( La bibliothèque de liens dynamiques Class)

a besoin d'un "C" externe pour l'aider, ce qui signifie qu'elle ne peut toujours appeler que des fonctions C et ne peut pas appeler directement des méthodes, mais elle peut analyser les méthodes C++. Au lieu d'utiliser un "C" externe, la bibliothèque de liens dynamiques construite ne dispose pas de tables de symboles pour ces fonctions.
(1) Fichier de classe C++ : pycallclass.cpp

#include
en utilisant l'espace de noms std;

class TestLib
{
public:
void display();
void display(int a);
void TestLib::display() {
cout}

void TestLib::display(int a) {
coutextern "C" {
TestLib obj;
void display() {
obj.display();
void display_int() {
obj.display(2 ); > } }
}


(2) g++ compile et génère la bibliothèque dynamique libpycall.so : g++ -o libpycallclass.so -shared -fPIC pycallclass.cpp.

(3) Python appelle le fichier de la bibliothèque dynamique : pycallclass.py

import ctypes

so = ctypes.cdll.LoadLibrary

lib = so(" ./ libpycallclass.so")
print 'display()' lib.display()

print 'display(100)' lib.display_int(100)



Le professeur donne des cours en de manière détendue et humoristique, et les étudiants apprennent sans stress. Du simple au profond, du profond au simple, détendu et joyeux, telle est l'image globale de ce professeur.

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