diff options
Diffstat (limited to 'Examples/python/simple/index.html')
-rw-r--r-- | Examples/python/simple/index.html | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Examples/python/simple/index.html b/Examples/python/simple/index.html new file mode 100644 index 0000000..dace471 --- /dev/null +++ b/Examples/python/simple/index.html @@ -0,0 +1,97 @@ +<html> +<head> +<title>SWIG:Examples:python:simple</title> +</head> + +<body bgcolor="#ffffff"> + + +<tt>SWIG/Examples/python/simple/</tt> +<hr> + +<H2>Simple Python Example</H2> + +<p> +This example illustrates how you can hook Python to a very simple C program containing +a function and a global variable. + +<h2>The C Code</h2> + +Suppose you have the following C code: + +<blockquote> +<pre> +/* File : example.c */ + +/* A global variable */ +double Foo = 3.0; + +/* Compute the greatest common divisor of positive integers */ +int gcd(int x, int y) { + int g; + g = y; + while (x > 0) { + g = x; + x = y % x; + y = g; + } + return g; +} +</pre> +</blockquote> + +<h2>The SWIG interface</h2> + +Here is a simple SWIG interface file: + +<blockquote> +<pre> +/* File: example.i */ +%module example + +extern int gcd(int x, int y); +extern double Foo; +</pre> +</blockquote> + +<h2>Compilation</h2> + +<ol> +<li><tt>swig -python <a href="example.i">example.i</a></tt> +<p> +<li>Compile <tt><a href="example_wrap.c">example_wrap.c</a></tt> and <tt><a href="example.c">example.c</a></tt> +to create the extension <tt>examplemodule.so</tt>. +</ol> + +<h2>Using the extension</h2> + +Click <a href="example.py">here</a> to see a script that calls our C functions from Python. + +<h2>Key points</h2> + +<ul> +<li>Use the <tt>import</tt> statement to load your extension module from Python. For example: +<blockquote> +<pre> +import example +</pre> +</blockquote> + +<li>C functions work just like Python functions. For example: +<blockquote> +<pre> +g = example.gcd(42,105) +</pre> +</blockquote> + +<li>C global variables are accessed through a special variable called 'cvar'. For example: +<blockquote> +<pre> +a = example.cvar.Foo +</pre> +</blockquote> +</ul> + +<hr> +</body> +</html> |