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

巴扎黑
Libérer: 2017-08-25 14:53:19
original
2293 Les gens l'ont consulté

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!