Python은 1989년 Guido van Rossum이 발명한 객체 지향 해석형 컴퓨터 프로그래밍 언어입니다. 최초 공개 릴리스는 1991년에 출시되었습니다. Python은 순수 무료 소프트웨어입니다. 소스 코드와 인터프리터 CPython은 GPL(GNU General Public License) 계약을 따릅니다. Python 구문은 간결하고 명확하며 그 특징 중 하나는 명령문 들여쓰기로 공백을 강제로 사용하는 것입니다. Python에는 풍부하고 강력한 라이브러리가 있습니다. 다른 언어(특히 C/C++)로 만들어진 다양한 모듈을 쉽게 연결할 수 있어 글루 언어(Glue Language)라고도 불린다. "Black Horse Cloud Classroom 8일 Python 심층 이해 동영상 튜토리얼"은 Python 언어에 대한 심층적인 이해를 제공합니다.
동영상 재생 주소: http://www.php.cn/course/556.html
이 동영상의 어려움은 C/C++ 호출에 있습니다.
1 Python은 C를 호출합니다. 동적 링크 라이브러리
Python이 C 라이브러리를 호출하는 것은 비교적 간단합니다. 캡슐화하지 않고 패키지화한 다음 Python의 ctype을 사용하여 호출합니다.
(1) C 언어 파일: pycall.c
/***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include
int foo(int a, int b)
{
printf("%d 및 %dn을 입력했습니다", a, b);
return a+b;
}
(2) gcc는 동적 라이브러리 libpycall.so를 컴파일하고 생성합니다. gcc -o libpycall.so -shared -fPIC pycall.c. C 동적 라이브러리를 생성하는 코드에서 함수나 메소드를 컴파일하기 위해 g++를 사용할 때 컴파일을 위해 extern "C"를 사용해야 합니다.
(3) Python은 동적 라이브러리의 파일을 호출합니다: pycall.py
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print '***finish***'
(4) 실행 결과:
2. Python은 C++(클래스) 동적 링크 라이브러리를 호출합니다.
지원하려면 extern "C"가 필요합니다. C 함수는 메서드를 직접 호출할 수 없지만 C++ 메서드를 구문 분석할 수 있습니다. extern "C"를 사용하는 대신, 구축된 동적 링크 라이브러리에는 이러한 기능에 대한 기호 테이블이 없습니다.
(1) C++ 클래스 파일: pycallclass.cpp
#include
using 네임스페이스 std; 이 {
cout}
void TestLib::display(int a) {
cout}
extern "C" {
TestLib obj;
void display() {
obj.display();
void display_int() {
}
}
(2) g++ 동적 라이브러리 libpycall.so를 컴파일하고 생성합니다: g++ -o libpycallclass.so -shared -fPIC pycallclass.cpp.
(3) Python은 동적 라이브러리 파일을 호출합니다: pycallclass.py
import ctypes
so = ctypes.cdll.LoadLibrary
lib = so("./libpycallclass.so")
print 'display()' lib. display()
선생님의 강의는 편안하고 유머러스하여 학생들이 부담 없이 학습할 수 있도록 해줍니다. 단순한 것에서 깊은 것까지, 깊은 것에서 단순한 것까지, 편안하고 유쾌한 것이 이 선생님의 전체적인 이미지입니다.
위 내용은 블랙호스클라우드교실 8일 동안 Python을 깊이 있게 이해하는 영상 자료의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!