ホームページ  >  記事  >  バックエンド開発  >  Black Horse Cloud Classroom Python を深く理解する 8 日間のビデオ教材

Black Horse Cloud Classroom Python を深く理解する 8 日間のビデオ教材

巴扎黑
巴扎黑オリジナル
2017-08-25 14:53:192306ブラウズ

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 言語をより深く理解できます。

Black Horse Cloud Classroom Python を深く理解する 8 日間のビデオ教材

ビデオ再生アドレス: 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 #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 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

名前空間 std を使用します


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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。