126.html ( File view )

  • By 2010-08-21
  • View(s):12
  • Download(s):0
  • Point(s): 1

Safari | Python Developer's Handbook -> Summary

< BACKMake Note | BookmarkCONTINUE >


This chapter exposes the extending and embedding functionality that gives Python the credit of possessing the capability to glue applications together.

Whenever you use Python code to call C code, you are extending Python. On the other hand, if you use C code to call Python code, you are embedding Python.

Python has a good relationship with C because Python's interpreter is written in C, and since its beginning, the interpreter has been ready to work with extension modules.

The extension modules are mostly used to add new functionality to Python when there is no other way to interface Python with a particular system or hardware. Sometimes, when Python code is inefficient, extension modules are also used to boost performance.

If you need to call Python routines from inside your application, you can use the embedding functionality to have them called by your compiled language.

Python provides an intuitive and clean C Application Programmers Interface (API) that exposes the interface to the Python runtime system. This API provides a great number of functions to manipulate Python objects and built-in types from C and C++.

In order to use your new extension modules, you can't forget to create the initialization function of the module and the method array that assigns the internal function names with the function names that are exposed in the module's interface.

The most important functions of an extension module are PyArg_ParseTuple and Py_BuildValue. They handle all the interfacing between C and Python. Both functions check the argument's type by looking at a formatting string. Tables 6.1 and 6.2 (one for each function) list all the possible formatting strings.

In addition to methods, you can also export constants back to Python. You just need to bind the constant name to the module namespace dictionary.

You must indicate errors in your extension module by returning NULL to the interpreter because functions signal errors by returning NULL. You can also use exception functions defined by the Python/C API. New exceptions can be created and stored at extension module as well.

Python extensions don't benefit from all the safety provided by the Python runtime system. There are a lot of things that you have to be worried about. The main thing is reference counting, which is handled by the Py_INCREF and Py_DECREF functions.

It becomes harder to adjust and compile code as C++ because Python has a C-based interpreter that has some restrictions when it comes to creating extension modules using C++.

Two options are available for building Python extension modules. The first one compiles and links the module into the interpreter. This option makes the module always available to the interpreter.

The second option doesn't require that you recompile the interpreter because it dynamically links the modules to the system.

SWIG is an automated tool create by David Beazley that is used to write interfaces between Python and existing C libraries. These interfaces can contain several single functions. The programmer doesn't have to write any special wrapping functions to provide the glue between the Python scripting language and the C functions. Besides SWIG, other applications (such as SIP and SCXX) are suitable for helping programmers wrap their C code.

While embedding Python in your programs, you will have the ability to load Python scripts and execute Python services that belong to specific Python modules. You can also call Python functions directly from your C code and access the Python objects that are returned by them. In order to embed Python inside a program, you just need to use the Python APIthe Python EXE isn't necessary. When embedding Python in your C++ code, it isn't necessary to recompile Python itself using C++.

In order to start the Python API service in your program, it is necessary to call the Py_Initialize function. To shutdown the Python interpreter, it is necessary to call the Py_Finalize function.

Python can be easily embedded in various languages and applications, such as C++, Delphi and Netscape Servers.... Expand> <Close

Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
0672319942.html3.37 kB01-06-02|20:06
1.html5.10 kB01-06-02|20:06
10.html3.69 kB01-06-02|20:06
100.html5.41 kB01-06-02|20:06
101.html7.96 kB01-06-02|20:06
102.html3.75 kB01-06-02|20:06
103.html3.75 kB01-06-02|20:06
104.html5.81 kB01-06-02|20:06
105.html16.46 kB01-06-02|20:06
106.html25.87 kB01-06-02|20:06
107.html7.44 kB01-06-02|20:06
108.html20.95 kB01-06-02|20:06
109.html10.02 kB01-06-02|20:06
11.html3.66 kB01-06-02|20:06
110.html9.58 kB01-06-02|20:06
111.html9.96 kB01-06-02|20:06
112.html11.34 kB01-06-02|20:06
113.html7.87 kB01-06-02|20:06
114.html13.56 kB01-06-02|20:06
115.html3.76 kB01-06-02|20:06
116.html3.76 kB01-06-02|20:06
117.html4.27 kB01-06-02|20:06
118.html4.27 kB01-06-02|20:06
119.html9.45 kB01-06-02|20:06
12.html3.66 kB01-06-02|20:06
120.html8.62 kB01-06-02|20:06
121.html65.99 kB01-06-02|20:06
122.html28.42 kB01-06-02|20:06
123.html14.92 kB01-06-02|20:06
124.html7.17 kB01-06-02|20:06
125.html24.21 kB01-06-02|20:06
126.html10.82 kB01-06-02|20:06
127.html10.54 kB01-06-02|20:06
128.html3.86 kB01-06-02|20:06
129.html3.86 kB01-06-02|20:06
13.html12.82 kB01-06-02|20:06
130.html5.85 kB01-06-02|20:06
131.html5.30 kB01-06-02|20:06
132.html29.95 kB01-06-02|20:06
133.html61.54 kB01-06-02|20:06
134.html40.34 kB01-06-02|20:06
135.html9.11 kB01-06-02|20:06
136.html15.53 kB01-06-02|20:06
137.html3.86 kB01-06-02|20:06
138.html3.86 kB01-06-02|20:06
139.html5.80 kB01-06-02|20:06
14.html11.79 kB01-06-02|20:06
140.html14.32 kB01-06-02|20:06
141.html26.46 kB01-06-02|20:06
142.html21.93 kB01-06-02|20:06
143.html17.03 kB01-06-02|20:06
144.html7.95 kB01-06-02|20:06
145.html28.59 kB01-06-02|20:06
146.html52.14 kB01-06-02|20:06
147.html8.37 kB01-06-02|20:06
148.html3.63 kB01-06-02|20:06
149.html3.63 kB01-06-02|20:06
15.html10.93 kB01-06-02|20:06
150.html4.42 kB01-06-02|20:06
151.html16.23 kB01-06-02|20:06
152.html32.55 kB01-06-02|20:06
153.html13.13 kB01-06-02|20:06
154.html28.33 kB01-06-02|20:06
155.html40.15 kB01-06-02|20:06
156.html23.47 kB01-06-02|20:06
157.html7.73 kB01-06-02|20:06
158.html10.61 kB01-06-02|20:06
159.html3.72 kB01-06-02|20:06
16.html11.42 kB01-06-02|20:06
160.html3.72 kB01-06-02|20:06
161.html3.64 kB01-06-02|20:06
162.html3.64 kB01-06-02|20:06
163.html4.70 kB01-06-02|20:06
164.html60.18 kB01-06-02|20:06
165.html42.25 kB01-06-02|20:06
166.html17.91 kB01-06-02|20:06
167.html9.76 kB01-06-02|20:06
168.html13.52 kB01-06-02|20:06
169.html10.35 kB01-06-02|20:06
17.html17.40 kB01-06-02|20:06
170.html9.08 kB01-06-02|20:06
171.html3.61 kB01-06-02|20:06
172.html3.61 kB01-06-02|20:06
173.html6.95 kB01-06-02|20:06
174.html27.86 kB01-06-02|20:06
175.html28.55 kB01-06-02|20:06
176.html16.39 kB01-06-02|20:06
177.html24.60 kB01-06-02|20:06
178.html10.20 kB01-06-02|20:06
179.html3.62 kB01-06-02|20:06
18.html12.04 kB01-06-02|20:06
180.html3.62 kB01-06-02|20:06
181.html7.21 kB01-06-02|20:06
182.html11.83 kB01-06-02|20:06
183.html17.37 kB01-06-02|20:06
184.html87.57 kB01-06-02|20:06
185.html25.23 kB01-06-02|20:06
186.html6.62 kB01-06-02|20:06
187.html3.73 kB01-06-02|20:06
188.html3.73 kB01-06-02|20:06
189.html4.76 kB01-06-02|20:06
19.html5.49 kB01-06-02|20:06
190.html74.34 kB01-06-02|20:06
191.html9.56 kB01-06-02|20:06
192.html31.86 kB01-06-02|20:06
193.html67.73 kB01-06-02|20:06
194.html69.48 kB01-06-02|20:06
195.html32.75 kB01-06-02|20:06
196.html10.74 kB01-06-02|20:06
197.html3.54 kB01-06-02|20:06
198.html3.54 kB01-06-02|20:06
199.html3.81 kB01-06-02|20:06
2.html5.10 kB01-06-02|20:06
20.html9.25 kB01-06-02|20:06
200.html3.81 kB01-06-02|20:06
201.html8.82 kB01-06-02|20:06
202.html7.07 kB01-06-02|20:06
203.html50.32 kB01-06-02|20:06
204.html8.07 kB01-06-02|20:06
205.html7.53 kB01-06-02|20:06
206.html3.60 kB01-06-02|20:06
207.html3.60 kB01-06-02|20:06
208.html7.22 kB01-06-02|20:06
209.html21.63 kB01-06-02|20:06
21.html5.84 kB01-06-02|20:06
210.html24.67 kB01-06-02|20:06
211.html30.17 kB01-06-02|20:06
212.html159.15 kB01-06-02|20:06
213.html18.72 kB01-06-02|20:06
214.html6.54 kB01-06-02|20:06
215.html7.22 kB01-06-02|20:06
216.html6.76 kB01-06-02|20:06
217.html3.11 kB01-06-02|20:06
218.html3.54 kB01-06-02|20:06
219.html4.14 kB01-06-02|20:06
22.html3.69 kB01-06-02|20:06
220.html4.14 kB01-06-02|20:06
221.html4.82 kB01-06-02|20:06
222.html50.92 kB01-06-02|20:06
223.html3.87 kB01-06-02|20:06
224.html57.67 kB01-06-02|20:06
225.html37.66 kB01-06-02|20:06
226.html5.04 kB01-06-02|20:06
227.html3.85 kB01-06-02|20:06
228.html3.85 kB01-06-02|20:06
229.html4.47 kB01-06-02|20:06
23.html3.69 kB01-06-02|20:06
230.html21.41 kB01-06-02|20:06
231.html19.56 kB01-06-02|20:06
232.html26.27 kB01-06-02|20:06
233.html10.07 kB01-06-02|20:06
234.html22.22 kB01-06-02|20:06
235.html36.83 kB01-06-02|20:06
236.html49.23 kB01-06-02|20:06
237.html16.63 kB01-06-02|20:06
238.html6.96 kB01-06-02|20:06
239.html3.09 kB01-06-02|20:06
24.html4.86 kB01-06-02|20:06
240.html3.43 kB01-06-02|20:06
241.html3.59 kB01-06-02|20:06
242.html3.59 kB01-06-02|20:06
243.html17.49 kB01-06-02|20:06
244.html9.38 kB01-06-02|20:06
245.html16.62 kB01-06-02|20:06
246.html9.81 kB01-06-02|20:06
247.html11.50 kB01-06-02|20:06
248.html8.95 kB01-06-02|20:06
249.html8.93 kB01-06-02|20:06
25.html11.48 kB01-06-02|20:06
250.html10.89 kB01-06-02|20:06
251.html8.21 kB01-06-02|20:06
252.html5.14 kB01-06-02|20:06
253.html3.61 kB01-06-02|20:06
254.html3.61 kB01-06-02|20:06
255.html4.61 kB01-06-02|20:06
256.html4.61 kB01-06-02|20:06
257.html43.07 kB01-06-02|20:06
258.html10.12 kB01-06-02|20:06
259.html7.99 kB01-06-02|20:06
26.html25.88 kB01-06-02|20:06
260.html17.17 kB01-06-02|20:06
261.html10.99 kB01-06-02|20:06
262.html15.70 kB01-06-02|20:06
263.html36.19 kB01-06-02|20:06
264.html61.93 kB01-06-02|20:06
265.html39.81 kB01-06-02|20:06
266.html15.13 kB01-06-02|20:06
267.html16.34 kB01-06-02|20:06
268.html3.55 kB01-06-02|20:06
269.html3.55 kB01-06-02|20:06
27.html27.92 kB01-06-02|20:06
270.html14.30 kB01-06-02|20:06
271.html14.21 kB01-06-02|20:06
272.html9.44 kB01-06-02|20:06
273.html8.41 kB01-06-02|20:06
274.html5.45 kB01-06-02|20:06
275.html5.45 kB01-06-02|20:06
276.html8.08 kB01-06-02|20:06
277.html9.78 kB01-06-02|20:06
278.html6.04 kB01-06-02|20:06
279.html6.89 kB01-06-02|20:06
28.html12.02 kB01-06-02|20:06
280.html11.77 kB01-06-02|20:06
281.html10.18 kB01-06-02|20:06
282.html4.98 kB01-06-02|20:06
283.html4.98 kB01-06-02|20:06
284.html4.12 kB01-06-02|20:06
285.html5.78 kB01-06-02|20:06
286.html12.42 kB01-06-02|20:06
287.html6.87 kB01-06-02|20:06
29.html45.69 kB01-06-02|20:06
3.html5.51 kB01-06-02|20:06
30.html10.03 kB01-06-02|20:06
31.html23.06 kB01-06-02|20:06
32.html22.26 kB01-06-02|20:06
33.html18.88 kB01-06-02|20:06
34.html18.25 kB01-06-02|20:06
35.html15.70 kB01-06-02|20:06
36.html5.50 kB01-06-02|20:06
37.html11.83 kB01-06-02|20:06
38.html3.69 kB01-06-02|20:06
39.html3.69 kB01-06-02|20:06
4.html5.51 kB01-06-02|20:06
40.html8.24 kB01-06-02|20:06
41.html12.92 kB01-06-02|20:06
42.html4.51 kB01-06-02|20:06
43.html3.90 kB01-06-02|20:06
44.html3.52 kB01-06-02|20:06
45.html5.99 kB01-06-02|20:06
46.html4.33 kB01-06-02|20:06
47.html4.19 kB01-06-02|20:06
48.html4.01 kB01-06-02|20:06
49.html3.95 kB01-06-02|20:06
5.html4.69 kB01-06-02|20:06
50.html3.63 kB01-06-02|20:06
51.html3.75 kB01-06-02|20:06
52.html5.56 kB01-06-02|20:06
53.html4.41 kB01-06-02|20:06
54.html6.99 kB01-06-02|20:06
55.html3.52 kB01-06-02|20:06
56.html3.95 kB01-06-02|20:06
57.html3.69 kB01-06-02|20:06
58.html4.27 kB01-06-02|20:06
59.html3.88 kB01-06-02|20:06
6.html4.69 kB01-06-02|20:06
60.html3.58 kB01-06-02|20:06
61.html4.17 kB01-06-02|20:06
62.html3.93 kB01-06-02|20:06
63.html3.68 kB01-06-02|20:06
64.html4.16 kB01-06-02|20:06
65.html4.04 kB01-06-02|20:06
66.html4.97 kB01-06-02|20:06
67.html3.91 kB01-06-02|20:06
68.html3.55 kB01-06-02|20:06
69.html3.51 kB01-06-02|20:06
7.html10.67 kB01-06-02|20:06
70.html3.52 kB01-06-02|20:06
71.html3.83 kB01-06-02|20:06
72.html4.02 kB01-06-02|20:06
73.html21.61 kB01-06-02|20:06
74.html12.94 kB01-06-02|20:06
75.html31.26 kB01-06-02|20:06
76.html11.98 kB01-06-02|20:06
77.html4.24 kB01-06-02|20:06
78.html4.26 kB01-06-02|20:06
79.html10.95 kB01-06-02|20:06
8.html10.67 kB01-06-02|20:06
80.html12.11 kB01-06-02|20:06
81.html4.88 kB01-06-02|20:06
82.html6.48 kB01-06-02|20:06
83.html5.64 kB01-06-02|20:06
84.html13.30 kB01-06-02|20:06
85.html7.00 kB01-06-02|20:06
86.html3.90 kB01-06-02|20:06
87.html4.59 kB01-06-02|20:06
88.html5.00 kB01-06-02|20:06
89.html17.71 kB01-06-02|20:06
9.html3.69 kB01-06-02|20:06
90.html6.00 kB01-06-02|20:06
91.html3.68 kB01-06-02|20:06
92.html3.68 kB01-06-02|20:06
93.html12.98 kB01-06-02|20:06
94.html10.60 kB01-06-02|20:06
95.html19.93 kB01-06-02|20:06
96.html10.34 kB01-06-02|20:06
97.html6.27 kB01-06-02|20:06
98.html6.77 kB01-06-02|20:06
99.html16.97 kB01-06-02|20:06
front_matter.html4.16 kB01-06-02|20:06
index.html3.37 kB01-06-02|20:06
new_toc.html15.79 kB01-06-02|20:06
rindex1.html53.02 kB01-06-02|20:05
rindex10.html5.16 kB01-06-02|20:05
rindex11.html3.96 kB01-06-02|20:05
rindex12.html15.07 kB01-06-02|20:05
rindex13.html84.43 kB01-06-02|20:05
rindex14.html10.85 kB01-06-02|20:05
rindex15.html26.04 kB01-06-02|20:05
rindex16.html58.33 kB01-06-02|20:05
rindex17.html3.52 kB01-06-02|20:05
rindex18.html16.83 kB01-06-02|20:05
rindex19.html52.89 kB01-06-02|20:05
rindex2.html13.47 kB01-06-02|20:05
rindex20.html17.55 kB01-06-02|20:05
rindex21.html13.56 kB01-06-02|20:05
rindex22.html10.63 kB01-06-02|20:05
rindex23.html16.92 kB01-06-02|20:05
rindex24.html4.90 kB01-06-02|20:05
rindex25.html2.50 kB01-06-02|20:05
rindex3.html43.59 kB01-06-02|20:06
rindex4.html21.76 kB01-06-02|20:06
rindex5.html22.31 kB01-06-02|20:06
rindex6.html36.57 kB01-06-02|20:06
rindex7.html14.06 kB01-06-02|20:06
rindex8.html11.93 kB01-06-02|20:06
rindex9.html25.33 kB01-06-02|20:06
toc.html24.97 kB01-06-02|20:06
(ebook0.00 BPython)|O'Reilly
06723199420.00 B25-08-02|17:24
graphics0.00 B25-08-02|17:24
images0.00 B25-08-02|17:24
oreillyi0.00 B25-08-02|17:24
oreillyM.css4.42 kB31-05-02|17:16
oreillyN.css4.42 kB31-05-02|17:16
00.gif41.00 B31-05-02|17:16
01fig01.gif58.03 kB28-01-02|08:54
01fig02.gif39.76 kB28-01-02|08:54
01fig03.gif22.06 kB28-01-02|08:54
01fig04.gif64.75 kB28-01-02|08:54
02fig01.gif54.48 kB28-01-02|08:54
02fig02.gif16.29 kB28-01-02|08:54
02fig03.gif14.11 kB28-01-02|08:54
02fig04.gif47.82 kB28-01-02|08:54
06fig01.gif32.19 kB28-01-02|08:54
06fig02.gif58.39 kB28-01-02|08:54
06fig03.gif48.96 kB28-01-02|08:54
07fig01.gif47.96 kB28-01-02|08:54
07fig02.gif8.99 kB28-01-02|08:54
07fig03.gif9.46 kB28-01-02|08:54
07fig04.gif11.51 kB28-01-02|08:54
07fig05.gif8.27 kB28-01-02|08:54
07fig06.gif31.46 kB28-01-02|08:54
12fig01.gif34.54 kB28-01-02|08:54
15fig01.gif1.30 kB28-01-02|08:54
15fig02.gif1.50 kB28-01-02|08:54
15fig03.gif5.93 kB28-01-02|08:54
15fig04.gif924.00 B28-01-02|08:54
15fig05.gif1.55 kB28-01-02|08:54
15fig06.gif1.62 kB28-01-02|08:54
15fig07.gif1.69 kB28-01-02|08:54
15fig08.gif1.02 kB28-01-02|08:54
15fig09.gif2.54 kB28-01-02|08:54
15fig10.gif1.92 kB28-01-02|08:54
15fig11.gif2.44 kB28-01-02|08:54
15fig12.gif2.48 kB28-01-02|08:54
15fig13.gif2.36 kB28-01-02|08:54
15fig14.gif5.43 kB28-01-02|08:54
15fig15.gif5.51 kB28-01-02|08:54
15fig16.gif2.18 kB28-01-02|08:54
15fig17.gif12.22 kB28-01-02|08:54
16fig01.gif28.99 kB28-01-02|08:54
16fig02.gif23.02 kB28-01-02|08:54
16fig03.gif32.48 kB28-01-02|08:54
16fig04.gif17.27 kB28-01-02|08:54
16fig05.gif23.88 kB28-01-02|08:54
16fig06.gif23.85 kB28-01-02|08:54
16fig07.gif36.76 kB28-01-02|08:54
16fig08.gif20.66 kB28-01-02|08:54
16fig09.gif71.63 kB28-01-02|08:54
16fig10.gif23.23 kB28-01-02|08:54
16fig11.gif22.97 kB28-01-02|08:54
16fig12.gif22.06 kB28-01-02|08:54
16fig13.gif49.73 kB28-01-02|08:54
16fig14.gif60.34 kB28-01-02|08:54
18fig01.gif63.94 kB28-01-02|08:54
18fig02.gif24.07 kB28-01-02|08:54
ccc.gif109.00 B28-01-02|08:54
spacer.gif41.00 B31-05-02|17:16
view.gif41.00 B31-05-02|17:16
0672319942_s.jpg2.91 kB29-01-02|11:29
Sponsored links
  • Sent successfully!
  • 1 point

126.html (1.65 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point


Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com


Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D