2016-07-03 10 views
1

注:私は長年、Javaで働いてきたが、私は、Pythonに新たなんだので、これは漠然とした質問のようなものである場合、私はお詫び申し上げます。私は何かを働かせようとしているだけでぶつかっています。サードパーティのPythonモジュールから情報を抽出していますか?

私は、アプリケーションのSDKで、サードパーティのPythonモジュールを使用しようとしています。 Pythonモジュールは、基礎をなすレガシーC SDKのラッパーです。

このモジュールのドキュメンテーションは、基本的にインクルードされているクラスとメソッドのリストであり、メソッドが何をしているのか、それらが基本的なC関数呼び出しにどのように関係しているかについてはほとんど説明されていません。例えば、Pythonメソッドは5つの引数を取ります。基本的なC関数は6つです。違いが何であるか、引数は何であるべきかを示しません。このコンパイルされたPythonモジュール(ソースコードは提供されていません)を調べ、さらに情報を収集しますか?これは、通常、4種類の一つだ

>>> import <modulename> 
>>> <modulename> 

モジュールについての情報を見つけるための良い出発点が何をしている

+0

C関数が最初の引数として不透明なデータ型を使用する場合、Pythonは通常これをクラス自体に置き換えます。 –

+0

モジュールとは何ですか? – Aya

+0

@Aya - Lightwave 3D lwsdkモジュールです。興味があれば、ここでドキュメントを読むことができます:http://static.lightwave3d.com/sdk/2015/python/index.html – user1071914

答えて

3

... ...


1.内蔵

>>> import sys 
>>> sys 
module 'sys' (built-in)> 

これらは通常C言語で記述され、 Pythonインタプリタバイナリに変換します。


2.動的にロードされたライブラリー

>>> import parser 
>>> parser 
<module 'parser' from '/usr/lib/python2.7/lib-dynload/parser.x86_64-linux-gnu.so'> 

また、これらは一般的にCで書かれていますが、別のバイナリファイルに格納されています。一般的なファイル拡張子が含まれます:.pyd.dll、および.soを。


3. Pythonモジュール

>>> import socket 
>>> socket 
<module 'socket' from '/usr/lib/python2.7/socket.pyc'> 

これらの少なくとも部分的にPythonで書かれ、ソースコードは、通常、ファイル名の末尾からcを除去することによって見ることができる、すなわち/usr/lib/python2.7/socket.py

それは純粋なPythonで行うことができないことを行うために、他のバイナリモジュールをインポートするには、Pythonで書かれたモジュールのためにも非常に一般的です。たとえば...

>>> socket._socket 
<module '_socket' (built-in)> 

4. Pythonパッケージ

>>> import xml 
>>> xml 
<module 'xml' from '/usr/lib/python2.7/xml/__init__.pyc'> 

は、これらも、少なくとも部分的にはPythonで書かれているが、多くの場合、ファイル__init__.pyは空で、ソースコード同じディレクトリ内の他のファイル、すなわち/usr/lib/python2.7/xmlに含まれています。

関連する問題