Python は、1989 年に Guido van Rossum によって発明された、オブジェクト指向の解釈型コンピューター プログラミング言語です。最初の公開リリースは 1991 年にリリースされました。 Python は純粋なフリー ソフトウェアです。ソース コードとインタプリタ CPython は GPL (GNU General Public License) 契約に従います。 Python の構文は簡潔かつ明確であり、その特徴の 1 つはステートメントのインデントとして空白を強制的に使用することです。 Python には豊富で強力なライブラリがあります。これは、他の言語 (特に C/C++) で作成されたさまざまなモジュールを簡単に接続できる、グルー言語と呼ばれることがよくあります。 「Black Horse Cloud Classroom 8 日間で Python を徹底的に理解するビデオチュートリアル」では、Python 言語をより深く理解できます。
ビデオ再生アドレス: http://www.php.cn/course/556.html
このビデオの難しさは、C/C++ の呼び出しにあります:
1.ダイナミック リンク ライブラリ
Python が C ライブラリを呼び出すのは比較的簡単です。カプセル化なしで so にパッケージ化されており、Python の ctypes を使用して呼び出されます。
(1) C 言語ファイル: pycall.c
/***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include
int foo(int a, int b)
printf("you input %d and %dn", a, b);
return a+b;
(2) gcc は動的ライブラリ libpycall.so をコンパイルして生成します。 gcc -o libpycall.so -shared -fPIC pycall.c。 g++ を使用して、C 動的ライブラリを生成するコード内の関数またはメソッドをコンパイルする場合は、コンパイルに extern "C" を使用する必要があります。
(3) Python はダイナミック ライブラリのファイルを呼び出します: pycall.py
import ctypesll = 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
class TestLib
void display(int a)
void TestLib::display(); {
cout}
void TestLib::display(int a) {
cout}
extern "C" {
void display() {
void display_int() {
obj.display(2) }
}
(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()
print 'display(100)' lib.display_int(100)
以上がBlack Horse Cloud Classroom Python を深く理解する 8 日間のビデオ教材の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。