{"id":11166,"date":"2015-10-31T02:59:20","date_gmt":"2015-10-31T06:59:20","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=11166"},"modified":"2015-11-11T00:56:04","modified_gmt":"2015-11-11T05:56:04","slug":"c-%e0%a6%8f%e0%a6%b0-%e0%a6%b8%e0%a6%be%e0%a6%a5%e0%a7%87-python-%e0%a6%aa%e0%a7%8d%e0%a6%b0%e0%a7%8b%e0%a6%97%e0%a7%8d%e0%a6%b0%e0%a6%be%e0%a6%ae%e0%a6%bf%e0%a6%82-%e0%a6%8f%e0%a6%95%e0%a7%8d","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=11166","title":{"rendered":"C \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 Python \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 (Python Extension Programming with C)"},"content":{"rendered":"<h2><strong>C \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 Python \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8<\/strong><\/h2>\n<p>C, C++ \u0985\u09a5\u09ac\u09be Java \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u098f\u09b0 \u09af\u09c7\u0995\u09cb\u09a8 \u0995\u09cb\u09a1 Python script \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u0987\u09a8\u09cd\u099f\u09c7\u0997\u09cd\u09b0\u09c7\u099f\/ \u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0 \u0995\u09b0\u09be \u09af\u09be\u09df, \u09af\u09be\u0995\u09c7 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ac\u09b2\u09c7\u0964 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ab\u09be\u0987\u09b2\u0997\u09c1\u09b2\u09cb \u09b8\u09cd\u09ac\u09be\u09ad\u09be\u09ac\u09bf\u0995 C \u09b2\u09be\u0987\u09ac\u09cd\u09b0\u09c7\u09b0\u09c0\u09b0 \u09ae\u09a4, Unix \u0985\u09aa\u09be\u09b0\u09c7\u099f\u09bf\u0982 \u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae \u098f\u00a0<strong>.so<\/strong>\u00a0\u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u0993 Windows \u09ae\u09c7\u09b6\u09bf\u09a8\u09c7<strong>.dll<\/strong>\u00a0\u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f\u09c7\u09b0 \u09b9\u09df\u0964<\/p>\n<p>&nbsp;<\/p>\n<h2>\u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b2\u09c7\u0996\u09be\u09b0 \u09aa\u09c2\u09b0\u09cd\u09ac\u09b6\u09b0\u09cd\u09a4<\/h2>\n<p>Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b2\u09bf\u0996\u09a4\u09c7 \u09b9\u09b2\u09c7 Python \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u098f\u09b0 \u09a6\u09b0\u0995\u09be\u09b0 \u09aa\u09dc\u09c7 Unix \u09ae\u09c7\u09b6\u09bf\u09a8\u09c7 \u098f\u09b8\u09ac \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 <a href=\"http:\/\/packages.debian.org\/etch-m68k\/python2.5-dev\">python2.5-dev<\/a> \u09a8\u09be\u09ae\u0995 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09af\u09be\u0995\u09c7\u099c \u0987\u09a8\u09b8\u09cd\u099f\u09b2 \u0995\u09b0\u09be\u09b0 \u09a6\u09b0\u0995\u09be\u09b0 \u09b9\u09df\u0964 Windows \u09ae\u09c7\u09b6\u09bf\u09a8\u09c7 \u0985\u09ac\u09b6\u09cd\u09af \u098f\u0987 \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u0997\u09c1\u09b2\u09cb \u09ac\u09be\u0987\u09a8\u09be\u09b0\u09bf Python \u0987\u09a8\u09b8\u09cd\u099f\u09b2\u09be\u09b0 \u09aa\u09cd\u09af\u09be\u0995\u09c7\u099c\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7\u0987 \u09a5\u09be\u0995\u09c7\u0964<\/p>\n<p>\u09aa\u09cd\u09b0\u09a5\u09ae \u09a6\u09bf\u0995\u09c7 Python extension \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09a4\u09c7 \u09b9\u09b2\u09c7 \u0995\u09cb\u09a1\u099f\u09bf\u09a4\u09c7 \u099a\u09be\u09b0 \u09a7\u09b0\u09a8\u09c7\u09b0 \u09ab\u09be\u0987\u09b2 \u09b8\u09be\u099c\u09be\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 \u09af\u09c7\u09ae\u09a8,<\/p>\n<ul>\n<li>\u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2<em>h<\/em>.<\/li>\n<li>C \u09ab\u09be\u0982\u09b6\u09a8 functions (\u09af\u09c7\u0997\u09c1\u09b2\u09cb \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u098f\u09b0 \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8 \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 \u09b9\u09ac\u09c7)\u0964<\/li>\n<li>\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u098f\u0995\u099f\u09bf \u099f\u09c7\u09ac\u09bf\u09b2 (Python developer \u09a6\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09a6\u09b0\u0995\u09be\u09b0)<\/li>\n<li>\u098f\u0995\u099f\u09bf \u0987\u09a8\u09bf\u09b6\u09bf\u09df\u09be\u09b2\u09be\u0987\u099c\u09c7\u09b6\u09a8 \u09ab\u09be\u0982\u09b6\u09a8<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2>\u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2\u00a0<em>Python.h<\/em><\/h2>\n<p>Python API \u098f \u09a2\u09cb\u0995\u09be\u09b0 \u099c\u09a8\u09cd\u09af <em>Python.h<\/em> \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2\u099f\u09bf\u0995\u09c7 C \u09b8\u09cb\u09b0\u09cd\u09b8 \u09ab\u09be\u0987\u09b2 \u098f\u09b0 \u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u0997\u09a4 \u0995\u09b0\u09c7 Python \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09aa\u09cd\u09b0\u09c7\u099f\u09be\u09b0 \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u0987\u09a8\u09cd\u099f\u09c7\u0997\u09cd\u09b0\u09c7\u099f \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 C \u09ab\u09be\u0982\u09b6\u09a8\u0997\u09c1\u09b2\u09cb \u09a8\u09bf\u099a\u09c7\u09b0 \u09a4\u09bf\u09a8 \u09b0\u0995\u09ae\u09c7\u09b0 \u09b9\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u0964<\/p>\n<hr \/>\n<pre>static PyObject *MyFunction( PyObject *self, PyObject *args );\r\n\r\nstatic PyObject *MyFunctionWithKeywords(PyObject *self,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PyObject *args,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PyObject *kw);\r\n\r\nstatic PyObject *MyFunctionWithNoArgs( PyObject *self );<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u09aa\u09cd\u09b0\u09a4\u09bf\u099f\u09bf \u09b8\u09cd\u099f\u09c7\u099f\u09ae\u09c7\u09a8\u09cd\u099f\u0987 \u09ab\u09b2\u09be\u09ab\u09b2 \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7 \u098f\u0995\u099f\u09bf Python object \u09a6\u09bf\u09ac\u09c7\u0964 Python \u098f C \u098f\u09b0 \u09ae\u09a4 \u0995\u09cb\u09a8 \u09ad\u09df\u09c7\u09a1 \u09ab\u09be\u0982\u09b6\u09a8 \u09a8\u09c7\u0987\u0964 \u09ad\u09df\u09c7\u09a1 \u098f\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7, Python \u098f\u09b0\u00a0<strong>None<\/strong>value\u2019\u09b0 \u09b8\u09ae\u09a4\u09c1\u09b2\u09cd\u09af C value \u09aa\u09be\u0993\u09df\u09be \u09af\u09be\u09ac\u09c7\u0964 Python headers \u0997\u09c1\u09b2\u09cb \u098f\u0987 \u0995\u09be\u099c \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af Py_RETURN_NONE \u09a8\u09be\u09ae\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u0995\u09cd\u09b0\u09cb \u09ab\u09be\u0987\u09b2 \u09a0\u09bf\u0995 \u0995\u09b0\u09c7\u0964<\/p>\n<p>\u098f \u09a7\u09b0\u09a8\u09c7\u09b0 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 C \u09ab\u09be\u0982\u09b6\u09a8 \u0997\u09c1\u09b2\u09cb\u0995\u09c7 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u099f\u09bf\u0995 (\u09b8\u09cd\u09a5\u09bf\u09a4\u09bf\u09b6\u09c0\u09b2) \u09ab\u09be\u0982\u09b6\u09a8 \u09ac\u09b2\u09c7, \u0995\u09be\u09b0\u09a8 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u09c7\u09b0 \u09ac\u09be\u0987\u09b0\u09c7 \u098f\u09a6\u09c7\u09b0 \u0995\u09cb\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u09a8\u09c7\u0987\u0964 Python \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u0993 Python \u09ab\u09be\u0982\u09b6\u09a8 \u0997\u09c1\u09b2\u09cb\u09b0 \u09a8\u09be\u09ae \u098f\u0995\u09a4\u09cd\u09b0\u09bf\u09a4 \u0995\u09b0\u09c7 C \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09a8\u09be\u09ae\u0997\u09c1\u09b2\u09cb \u09a0\u09bf\u0995 \u0995\u09b0\u09be \u09b9\u09df\u0964 \u09a8\u09bf\u099a\u09c7\u09b0 \u0989\u09a6\u09be\u09b9\u09b0\u09a3\u099f\u09bf\u0995 \u09b2\u0995\u09cd\u09b7\u09cd\u09af \u0995\u09b0\u09bf,<\/p>\n<hr \/>\n<p>static PyObject *module_func(PyObject *self, PyObject *args) {<br \/>\n\/* Do your stuff here. *\/<br \/>\nPy_RETURN_NONE;<br \/>\n}<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0987 Python \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf\u09b0 \u09a8\u09be\u09ae <em>func<\/em><em>, <\/em>\u00a0\u098f\u09ac\u0982 \u098f\u099f\u09bf <em>module<\/em> \u09a8\u09be\u09ae\u0995 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u098f\u09b0 \u09ad\u09c7\u09a4\u09b0 \u0985\u09ac\u09b8\u09cd\u09a5\u09bf\u09a4\u0964<\/p>\n<p>&nbsp;<\/p>\n<h2>Method Mapping Table (\u09ae\u09c7\u09a5\u09a1 \u09ae\u09cd\u09af\u09be\u09aa\u09bf\u0982 \u099f\u09c7\u09ac\u09bf\u09b2)<\/h2>\n<p>\u09ae\u09c7\u09a5\u09a1 \u099f\u09c7\u09ac\u09bf\u09b2 \u09b9\u099a\u09cd\u099b\u09c7 \u09a8\u09bf\u099a\u09c7\u09b0 PyMethodDef \u09b8\u09cd\u099f\u09cd\u09b0\u09be\u0995\u099a\u09be\u09b0\u09c7\u09b0 \u098f\u0995\u099f\u09bf \u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u09ac\u09bf\u09a8\u09cd\u09af\u09be\u09b8 (array)\u0964<\/p>\n<p>struct PyMethodDef {\u00a0\u00a0 char *ml_name;\u00a0\u00a0 PyCFunction ml_meth;\u00a0\u00a0 int ml_flags;\u00a0\u00a0 char *ml_doc;};<\/p>\n<p>\u09a8\u09bf\u099a\u09c7 \u098f\u0987 \u09b8\u09cd\u099f\u09cd\u09b0\u09be\u0995\u099a\u09be\u09b0\u09c7\u09b0 \u09b8\u09a6\u09b8\u09cd\u09af \u0997\u09c1\u09b2\u09cb\u09b0 \u09ac\u09b0\u09cd\u09a8\u09a8\u09be \u09a6\u09c7\u09df\u09be \u09b9\u09b2\u0983<\/p>\n<ul>\n<li><strong>ml_name:<\/strong>Python \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09aa\u09cd\u09b0\u09c7\u099f\u09be\u09b0 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 \u09b9\u09ac\u09be\u09b0 \u09b8\u09ae\u09df \u09af\u09c7\u0987 \u09a8\u09be\u09ae \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u0964<\/li>\n<li><strong>ml_meth:<\/strong>\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09b2\u09cb\u0995\u09c7\u09b6\u09a8\u0964<\/li>\n<li><strong>ml_flags:<\/strong>\u098f\u099f\u09be \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09aa\u09cd\u09b0\u09c7\u099f\u09be\u09b0\u0995\u09c7 \u09a7\u09be\u09b0\u09a3\u09be \u09a6\u09c7\u09df \u09af\u09c7, ml_meth \u0995\u09cb\u09a8 \u09b8\u0982\u0995\u09c7\u09a4\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u099b\u09c7 (METH_VARARGS, METH_KEYWORDS \u0995\u09bf\u0982\u09ac\u09be METH_NOARGS)<\/li>\n<li><strong>ml_doc:<\/strong> \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 docstring, \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09be\u09b0 \u0995\u09cb\u09a8 \u0995\u09bf\u099b\u09c1 \u09a8\u09be \u09b2\u09c7\u0996\u09b2\u09c7 \u098f\u099f\u09be \u09ac\u09be\u09a6 \u09af\u09be\u09ac\u09c7\u0964<\/li>\n<\/ul>\n<p>\u0989\u09aa\u09af\u09c1\u0995\u09cd\u09a4 \u09ae\u09c7\u09ae\u09cd\u09ac\u09be\u09b0\u0997\u09c1\u09b2\u09cb\u09b0 \u099c\u09a8\u09cd\u09af, \u098f\u0987 \u099f\u09c7\u09ac\u09bf\u09b2\u099f\u09bf \u098f\u0995\u099f\u09bf \u09b6\u09c2\u09a8\u09cd\u09af \u09ae\u09be\u09a8\u09c7\u09b0 \u09b8\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09c7\u09b2 (sentinel) \u098f\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 \u0989\u09a6\u09be\u09b9\u09b0\u09a8 \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7, \u0989\u09aa\u09b0\u09c7\u09b0 \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u099c\u09a8\u09cd\u09af, \u09a8\u09bf\u099a\u09c7\u09b0 \u09ae\u09c7\u09a5\u09a1 \u09ae\u09cd\u09af\u09be\u09aa\u09bf\u0982 \u099f\u09c7\u09ac\u09bf\u09b2\u099f\u09bf \u09b8\u09ae\u09cd\u09ad\u09ac\u0983<\/p>\n<hr \/>\n<pre>static PyMethodDef module_methods[] = {\r\n\u00a0\u00a0 { \"func\", (PyCFunction)module_func, METH_NOARGS, NULL },\r\n\u00a0\u00a0 { NULL, NULL, 0, NULL }\r\n};<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<h2>\u0987\u09a8\u09bf\u09b6\u09bf\u09df\u09be\u09b2\u09be\u0987\u099c\u09c7\u09b6\u09a8 \u09ab\u09be\u0982\u09b6\u09a8\u0983<\/h2>\n<p>\u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u09c7\u09b0 \u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0985\u0982\u09b6 \u09b9\u099a\u09cd\u099b\u09c7 \u0987\u09a8\u09bf\u09b6\u09bf\u09df\u09be\u09b2\u09be\u0987\u099c\u09c7\u09b6\u09a8 \u09ab\u09be\u0982\u09b6\u09a8\u0964 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u09b2\u09cb\u09a1 \u09b9\u09ac\u09be\u09b0 \u09aa\u09dc\u09c7 Python \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09aa\u09cd\u09b0\u09c7\u099f\u09be\u09b0 \u098f\u0987 \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u0964 \u098f\u0987 \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09a8\u09be\u09ae\u0995\u09b0\u09a8 <strong>init<em>Module<\/em><\/strong> \u0986\u0995\u09be\u09b0\u09c7\u09b0 \u09b9\u09df (<em>Module<\/em>\u00a0\u09b9\u099a\u09cd\u099b\u09c7 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u099f\u09bf\u09b0 \u09a8\u09be\u09ae)\u0964\u0964<\/p>\n<p>\u0986\u09aa\u09a8\u09bf \u09af\u09c7\u0987 \u09b2\u09be\u0987\u09ac\u09cd\u09b0\u09c7\u09b0\u09c0 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09ac\u09c7\u09a8 \u09b8\u09c7\u099f\u09be \u09a5\u09c7\u0995\u09c7\u0987 \u0987\u09a8\u09bf\u09b6\u09bf\u09df\u09be\u09b2\u09be\u0987\u099c\u09c7\u09b6\u09a8 \u09ab\u09be\u0982\u09b6\u09a8 \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09be \u09b9\u09ac\u09c7\u0964 Python \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u0997\u09c1\u09b2\u09cb PyMODINIT_FUNC \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u0995\u09ae\u09cd\u09aa\u09be\u0987\u09b2\u09c7\u09b6\u09a8\u09c7\u09b0 \u09b8\u09ae\u09df \u09ac\u09bf\u09ad\u09bf\u09a8\u09cd\u09a8 \u09aa\u09b0\u09bf\u09b8\u09cd\u09a5\u09bf\u09a4\u09bf \u0985\u09a8\u09c1\u09af\u09be\u09df\u09c0 \u098f\u0987 \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f\u099f\u09bf \u0995\u09b0\u09c7 \u09a5\u09be\u0995\u09c7\u0964 \u09b8\u09c7\u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u098f\u099f\u09bf \u09ab\u09be\u0982\u09b6\u09a8 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09df\u09bf\u09a4 \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09df \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 C \u0987\u09a8\u09bf\u09b6\u09bf\u09df\u09be\u09b2 \u09ab\u09be\u0982\u09b6\u09a8 \u09b8\u09be\u09a7\u09be\u09b0\u09a3\u09a4 \u09a8\u09bf\u099a\u09c7\u09b0 \u0995\u09be\u09a0\u09be\u09ae\u09cb \u0985\u09a8\u09c1\u09af\u09be\u09df\u09c0 \u09b9\u09df\u0983<\/p>\n<hr \/>\n<pre>PyMODINIT_FUNC initModule() {\r\n\u00a0\u00a0 Py_InitModule3(func, module_methods, \"docstring...\");\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0996\u09be\u09a8\u09c7, <em>Py_InitModule3<\/em>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09e9\u099f\u09bf \u09ae\u09c7\u09ae\u09cd\u09ac\u09be\u09b0 \u09b9\u099a\u09cd\u099b\u09c7\u2212<\/p>\n<ul>\n<li><strong>func:<\/strong> \u09af\u09c7 \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u098f\u0995\u09cd\u09b8\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09be \u09b9\u09ac\u09c7\u0964<\/li>\n<li><strong><em>module<\/em><\/strong><strong>_methods:<\/strong>\u09ae\u09cd\u09af\u09be\u09aa\u09bf\u0982 \u099f\u09c7\u09ac\u09bf\u09b2\u09c7\u09b0 \u09a8\u09be\u09ae\u0964<\/li>\n<li><strong><em>docstring:<\/em><\/strong> \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4 \u0995\u09ae\u09c7\u09a8\u09cd\u099f\u0964<\/li>\n<\/ul>\n<p>\u09af\u09c7\u09ae\u09a8,<\/p>\n<hr \/>\n<pre>#include &lt;Python.h&gt;\r\n\r\nstatic PyObject *module_func(PyObject *self, PyObject *args) {\r\n\u00a0\u00a0 \/* Do your stuff here. *\/\r\n\u00a0\u00a0 Py_RETURN_NONE;\r\n}\r\n\r\nstatic PyMethodDef module_methods[] = {\r\n\u00a0\u00a0 { \"func\", (PyCFunction)module_func, METH_NOARGS, NULL },\r\n\u00a0\u00a0 { NULL, NULL, 0, NULL }\r\n};\r\n\r\nPyMODINIT_FUNC initModule() {\r\n\u00a0\u00a0 Py_InitModule3(func, module_methods, \"docstring...\");\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><strong>\u09a8\u09bf\u099a\u09c7\u09b0 \u0989\u09a6\u09be\u09b9\u09b0\u09a3\u099f\u09bf \u0989\u09aa\u09b0\u09c7\u09b0 \u0995\u09a8\u09b8\u09c7\u09aa\u09cd\u099f \u0997\u09c1\u09b2\u09cb\u09b0 \u0986\u09b0\u09c7\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09df\u09cb\u0997\u0983<\/strong><\/p>\n<hr \/>\n<pre>#include &lt;Python.h&gt;\r\n\r\nstatic PyObject* helloworld(PyObject* self)\r\n{\r\n\u00a0\u00a0\u00a0 return Py_BuildValue(\"s\", \"Hello, Python extensions!!\");\r\n}\r\n\r\nstatic char helloworld_docs[] =\r\n\u00a0\u00a0\u00a0 \"helloworld( ): Any message you want to put here!!\\n\";\r\n\r\nstatic PyMethodDef helloworld_funcs[] = {\r\n\u00a0\u00a0\u00a0 {\"helloworld\", (PyCFunction)helloworld, \r\n\u00a0\u00a0\u00a0\u00a0 METH_NOARGS, helloworld_docs},\r\n\u00a0\u00a0\u00a0 {NULL}\r\n};\r\n\r\nvoid inithelloworld(void)\r\n{\r\n\u00a0\u00a0\u00a0 Py_InitModule3(\"helloworld\", helloworld_funcs,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Extension module example!\");\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0996\u09be\u09a8\u09c7\u00a0<em>Py_BuildValue<\/em>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf Python \u098f\u09b0 \u09ae\u09be\u09a8 (value) \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c7\u0964 \u0989\u09aa\u09b0\u09c7\u09b0 \u0995\u09cb\u09a1\u099f\u09bf hello.c \u09ab\u09be\u0987\u09b2 \u098f \u09b8\u09c7\u09ad \u0995\u09b0\u09c1\u09a8. \u098f\u0996\u09a8 \u0986\u09ae\u09b0\u09be \u09a6\u09c7\u0996\u09ac\u09cb \u0995\u09bf\u09ad\u09be\u09ac\u09c7 Python script \u098f\u09b0 \u098f\u0987 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u099f\u09bf\u0995\u09c7 \u0987\u09a8\u09b8\u09cd\u099f\u09b2 \u0993 \u0995\u09ae\u09cd\u09aa\u09be\u0987\u09b2 \u0995\u09b0\u09be \u09af\u09be\u09df\u0964<\/p>\n<p>&nbsp;<\/p>\n<h2>\u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09a4\u09c8\u09b0\u09bf \u0993 \u0987\u09a8\u09cd\u09b8\u099f\u09b2 \u0995\u09b0\u09be\u0983<\/h2>\n<p><em>distutils<\/em>\u00a0\u09aa\u09cd\u09af\u09be\u0995\u09c7\u099c \u098f\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u09b8\u09b9\u099c\u09c7\u0987 Python \u098f\u09b0 \u0985\u09b0\u09bf\u099c\u09bf\u09a8\u09be\u09b2 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u0993 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b8\u09a0\u09bf\u0995\u09ad\u09be\u09ac\u09c7 \u09ac\u09a8\u09cd\u099f\u09a8 \u0995\u09b0\u09be \u09af\u09be\u09df\u0964 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2 \u0997\u09c1\u09b2\u09cb \u09b8\u09cb\u09b0\u09cd\u09b8 \u0986\u0995\u09be\u09b0\u09c7 \u09ad\u09be\u0997 \u0995\u09b0\u09be \u09a5\u09be\u0995\u09c7, \u098f\u09ac\u0982 <em>setup.py<\/em>\u00a0 \u098f\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u09a4\u09c8\u09b0\u09bf \u0993 \u0987\u09a8\u09cd\u09b8\u099f\u09b2 \u0995\u09b0\u09be \u09b9\u09df\u0964 \u0989\u09aa\u09b0\u09c7\u09b0 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u099f\u09bf\u09b0 \u099c\u09a8\u09cd\u09af \u09a8\u09bf\u09ae\u09cd\u09a8\u09cb\u0995\u09cd\u09a4 setup.py \u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09cd\u099f\u099f\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964<\/p>\n<hr \/>\n<pre>from distutils.core import setup, Extension\r\nsetup(name='helloworld', version='1.0',\u00a0 \\\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 ext_modules=[Extension('helloworld', ['hello.c'])])<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0996\u09a8 \u09a8\u09bf\u099a\u09c7\u09b0 \u0995\u09ae\u09be\u09a8\u09cd\u09a1\u099f\u09bf \u09aa\u09cd\u09b0\u09df\u09cb\u0997 \u0995\u09b0\u09b2\u09c7 \u09a4\u09be \u09b8\u09a0\u09bf\u0995 \u0995\u09ae\u09cd\u09aa\u09be\u0987\u09b2\u09be\u09b0, \u09b2\u09bf\u0999\u09cd\u0995\u09be\u09b0 \u0995\u09ae\u09be\u09a8\u09cd\u09a1 \u098f\u09ac\u0982 \u09ab\u09cd\u09b2\u09cd\u09af\u09be\u0997 \u098f\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u09aa\u09cd\u09b0\u09df\u09cb\u099c\u09a8\u09c0\u09df \u0995\u09ae\u09cd\u09aa\u09be\u0987\u09b2\u09c7\u09b6\u09a8, \u09b8\u0982\u09af\u09cb\u099c\u09a8 \u0995\u09b0\u09ac\u09c7, \u0993 \u09b8\u09a0\u09bf\u0995 \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf\u09a4\u09c7 \u09ab\u09b2\u09be\u09ab\u09b2\u09b8\u09cd\u09ac\u09b0\u09c2\u09aa \u09a1\u09be\u0987\u09a8\u09be\u09ae\u09bf\u0995 \u09b2\u09be\u0987\u09ac\u09cd\u09b0\u09c7\u09b0\u09c0 \u0995\u09aa\u09bf \u0995\u09b0\u09ac\u09c7 \u0964<\/p>\n<hr \/>\n<pre>$ python setup.py install<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>Unix \u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae\u09c7 \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u09b0\u09c1\u099f \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7 \u098f\u0987 \u0995\u09ae\u09be\u09a8\u09cd\u09a1\u099f\u09bf \u09b0\u09be\u09a8 \u0995\u09b0\u09be\u09a4\u09c7 \u09b9\u09ac\u09c7 \u09af\u09be\u09a4\u09c7 \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u099f-\u09aa\u09cd\u09af\u09be\u0995\u09c7\u099c \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf \u09a4\u09c7 \u09b2\u09c7\u0996\u09be\u09b0 \u09aa\u09be\u09b0\u09ae\u09bf\u09b6\u09a8 \u09a5\u09be\u0995\u09c7\u0964 Windows \u098f\u09b0 \u099c\u09a8\u09cd\u09af \u0985\u09ac\u09b6\u09cd\u09af \u098f\u099f\u09bf \u0995\u09cb\u09a8 \u09b8\u09ae\u09b8\u09cd\u09af\u09be \u09a8\u09be\u0964<\/p>\n<p>&nbsp;<\/p>\n<h2>Importing Extensions<\/h2>\n<p>\u098f\u0995\u09ac\u09be\u09b0 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u0987\u09a8\u09cd\u09b8\u099f\u09b2 \u0995\u09b0\u09be \u09b9\u09b2\u09c7, \u0986\u09aa\u09a8\u09bf \u09b8\u09c7\u0987 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 Python \u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09cd\u099f\u09c7 \u098f\u09ad\u09be\u09ac\u09c7 \u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09ac\u09c7\u09a8\u0964<\/p>\n<hr \/>\n<pre>#!\/usr\/bin\/python\r\nimport helloworld\r\n\r\nprint helloworld.helloworld()<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0987 \u09ae\u09a1\u09c7\u09b2\u099f\u09bf \u09a8\u09bf\u099a\u09c7\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2 \u09a6\u09bf\u09ac\u09c7\u0964<\/p>\n<hr \/>\n<pre>Hello, Python extensions!!<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Passing Function Parameters<\/h2>\n<p>\u09af\u09c7\u09b9\u09c7\u09a4\u09c1 \u0986\u09aa\u09a8\u09bf \u098f\u09ae\u09a8 \u09ab\u09be\u0982\u09b6\u09a8 \u099a\u09be\u09a8 \u09af\u09c7\u099f\u09be \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u0997\u09cd\u09b0\u09b9\u09a3 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7, \u09a4\u09be\u0987 \u09a8\u09bf\u099a\u09c7\u09b0 \u09af\u09c7\u0995\u09cb\u09a8\u09cb C function \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u09a8\u0964 \u0989\u09a6\u09be\u09b9\u09b0\u09a3\u09b8\u09cd\u09ac\u09b0\u09c2\u09aa, \u09a8\u09bf\u099a\u09c7\u09b0 \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u098f\u09ae\u09a8\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u099c\u09cd\u099e\u09be\u09df\u09bf\u09a4 \u0995\u09b0\u09be \u09af\u09c7\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7,<\/p>\n<hr \/>\n<pre>static PyObject *module_func(PyObject *self, PyObject *args) {\r\n\u00a0\u00a0 \/* Parse args and do something interesting here. *\/\r\n\u00a0\u00a0 Py_RETURN_NONE;\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u09a8\u09a4\u09c1\u09a8 \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u099c\u09be\u09df\u0997\u09be \u09b8\u09ae\u09cd\u09ac\u09b2\u09bf\u09a4 \u09ae\u09c7\u09a5\u09a1 \u099f\u09c7\u09ac\u09bf\u09b2\u099f\u09bf \u098f\u09ae\u09a8 \u09b9\u09ac\u09c7\u0983<\/p>\n<hr \/>\n<pre>static PyMethodDef module_methods[] = {\r\n\u00a0\u00a0 { \"func\", (PyCFunction)module_func, METH_NOARGS, NULL },\r\n\u00a0\u00a0 { \"func\", module_func, METH_VARARGS, NULL },\r\n\u00a0\u00a0 { NULL, NULL, 0, NULL }\r\n};<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>C \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 PyObject \u09a5\u09c7\u0995\u09c7 \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u098f\u0995\u09cd\u09b8\u099f\u09cd\u09b0\u09be\u0995\u09cd\u099f \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af API\u00a0<em>PyArg_ParseTuple<\/em>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u09a8\u0964 PyArg_ParseTuple \u098f\u09b0 \u09aa\u09cd\u09b0\u09a5\u09ae \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f\u099f\u09bf \u09b9\u099a\u09cd\u099b\u09c7 args \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f\u0964 \u098f\u0987 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u099f\u09bf\u0995\u09c7 \u0986\u09aa\u09a8\u09bf <em>parsing<\/em> \u0995\u09b0\u09ac\u09c7\u09a8\u0964 \u09a6\u09cd\u09ac\u09bf\u09a4\u09c0\u09df \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f\u099f\u09bf \u09b9\u09ac\u09c7 \u098f\u09ae\u09a8 \u098f\u0995\u099f\u09bf \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u09af\u09c7\u099f\u09be \u0986\u09aa\u09a8\u09bf \u09af\u09c7\u09ad\u09be\u09ac\u09c7 \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u0997\u09c1\u09b2\u09cb \u099a\u09be\u09a8 \u09b8\u09c7\u09ad\u09be\u09ac\u09c7 \u09ac\u09b0\u09cd\u09a8\u09a8\u09be \u0995\u09b0\u09ac\u09c7\u0964 \u09aa\u09cd\u09b0\u09a4\u09bf\u099f\u09bf \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u098f\u09b0 \u098f\u0995 \u09ac\u09be \u098f\u0995\u09be\u09a7\u09bf\u0995 \u0995\u09cd\u09af\u09be\u09b0\u09c7\u0995\u09cd\u099f\u09be\u09b0 \u09a6\u09cd\u09ac\u09be\u09b0\u09be \u09aa\u09cd\u09b0\u0995\u09be\u09b6\u09bf\u09a4\u0964<\/p>\n<hr \/>\n<pre>static PyObject *module_func(PyObject *self, PyObject *args) {\r\n\u00a0\u00a0 int i;\r\n\u00a0\u00a0 double d;\r\n\u00a0\u00a0 char *s;\r\n\r\n\u00a0\u00a0 if (!PyArg_ParseTuple(args, \"ids\", &amp;i, &amp;d, &amp;s)) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return NULL;\r\n\u00a0\u00a0 }\r\n\u00a0 \u00a0\r\n\u00a0\u00a0 \/* Do something interesting here. *\/\r\n\u00a0\u00a0 Py_RETURN_NONE;\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u09a8\u09a4\u09c1\u09a8 \u09ae\u09cb\u09a1\u09bf\u0989\u09b2\u09c7\u09b0 \u09ad\u09be\u09b0\u09cd\u09b8\u09a8 \u0995\u09ae\u09cd\u09aa\u09be\u0987\u09b2 \u0993 \u0987\u09ae\u09cd\u09aa\u09cb\u09b0\u09cd\u099f \u0995\u09b0\u09b2\u09c7 \u09a8\u09a4\u09c1\u09a8 \u09ab\u09be\u0982\u09b6\u09a8\u09c7 \u09af\u09c7\u0995\u09cb\u09a8\u09cb \u09a7\u09b0\u09a8\u09c7\u09b0 \u09af\u09c7\u0995\u09cb\u09a8\u09cb \u09b8\u0982\u0996\u09cd\u09af\u0995 \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09be \u09af\u09be\u09df\u0964 \u09af\u09c7\u09ae\u09a8,<\/p>\n<hr \/>\n<pre class=\"prettyprint notranslate prettyprinted\"><span class=\"kwd\">module<\/span><span class=\"pun\">.<\/span><span class=\"pln\">func<\/span><span class=\"pun\">(<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> s<\/span><span class=\"pun\">=<\/span><span class=\"str\">\"three\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> d<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2.0<\/span><span class=\"pun\">)<\/span>\r\n<span class=\"kwd\">module<\/span><span class=\"pun\">.<\/span><span class=\"pln\">func<\/span><span class=\"pun\">(<\/span><span class=\"pln\">i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> d<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2.0<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> s<\/span><span class=\"pun\">=<\/span><span class=\"str\">\"three\"<\/span><span class=\"pun\">)<\/span>\r\n<span class=\"kwd\">module<\/span><span class=\"pun\">.<\/span><span class=\"pln\">func<\/span><span class=\"pun\">(<\/span><span class=\"pln\">s<\/span><span class=\"pun\">=<\/span><span class=\"str\">\"three\"<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> d<\/span><span class=\"pun\">=<\/span><span class=\"lit\">2.0<\/span><span class=\"pun\">,<\/span><span class=\"pln\"> i<\/span><span class=\"pun\">=<\/span><span class=\"lit\">1<\/span><span class=\"pun\">)<\/span><\/pre>\n<hr \/>\n<pre class=\"prettyprint notranslate prettyprinted\"><\/pre>\n<p>\u098f\u0996\u09be\u09a8\u09c7 \u0986\u09aa\u09a8\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09cd\u09b0\u09df\u09cb\u099c\u09a8 \u09ae\u09a4 \u0986\u09b0\u0993 \u09ac\u09c8\u099a\u09bf\u09a4\u09cd\u09b0 \u0986\u09a8\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u09a8\u0964<\/p>\n<h2><em>PyArg_ParseTuple<\/em>\u00a0 \u09ab\u09be\u0982\u09b6\u09a8<\/h2>\n<p><strong>PyArg_ParseTuple<\/strong>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be\u09b0\u09cd\u09a1 \u09b8\u09bf\u0997\u09cd\u09a8\u09c7\u099a\u09be\u09b0 \u09b9\u099a\u09cd\u099b\u09c7\u0983<\/p>\n<hr \/>\n<pre>int PyArg_ParseTuple(PyObject* tuple,char* format,...)<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0987 \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u09ad\u09c1\u09b2 \u09b9\u09b2\u09c7 \u09e6 \u09ae\u09be\u09a8 \u0986\u09b8\u09ac\u09c7, \u0986\u09b0 \u09b8\u09a0\u09bf\u0995 \u09b9\u09b2\u09c7 \u09b6\u09c2\u09a8\u09cd\u09af \u099b\u09be\u09dc\u09be \u0985\u09a8\u09cd\u09af \u0995\u09cb\u09a8 \u09ae\u09be\u09a8 \u0986\u09b8\u09ac\u09c7\u0964 \u098f\u0996\u09be\u09a8\u09c7 tuple \u09b9\u099a\u09cd\u099b\u09c7 PyObject*, \u09af\u09be C \u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09a6\u09cd\u09ac\u09bf\u09a4\u09c0\u09df \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f, \u098f\u09ac\u0982 <em>format<\/em>\u00a0\u09b9\u099a\u09cd\u099b\u09c7 \u098f\u0995\u099f\u09bf C \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982, \u09af\u09be \u0986\u09ac\u09b6\u09cd\u09af\u09bf\u0995 (mandatory) \u0993 \u0990\u099a\u09cd\u099b\u09bf\u0995 (optional) \u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u0997\u09c1\u09b2\u09cb \u09ac\u09b0\u09cd\u09a8\u09a8\u09be \u0995\u09b0\u09c7\u0964<\/p>\n<p>\u09a8\u09bf\u099a\u09c7\u00a0<strong>PyArg_ParseTuple<\/strong>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u0995\u09cb\u09a1 \u0997\u09c1\u09b2\u09cb \u09a6\u09c7\u09df\u09be \u09b9\u09b2\u0983<\/p>\n<table width=\"604\">\n<tbody>\n<tr>\n<td width=\"60\"><strong>Code<\/strong><\/td>\n<td width=\"148\"><strong>C type<\/strong><\/td>\n<td width=\"395\"><strong>Meaning<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"60\">c<\/td>\n<td width=\"148\">char<\/td>\n<td width=\"395\">A Python string of length 1 becomes a C char.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">d<\/td>\n<td width=\"148\">double<\/td>\n<td width=\"395\">A Python float becomes a C double.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">f<\/td>\n<td width=\"148\">float<\/td>\n<td width=\"395\">A Python float becomes a C float.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">i<\/td>\n<td width=\"148\">int<\/td>\n<td width=\"395\">A Python int becomes a C int.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">l<\/td>\n<td width=\"148\">long<\/td>\n<td width=\"395\">A Python int becomes a C long.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">L<\/td>\n<td width=\"148\">long long<\/td>\n<td width=\"395\">A Python int becomes a C long long<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">O<\/td>\n<td width=\"148\">PyObject*<\/td>\n<td width=\"395\">Gets non-NULL borrowed reference to Python argument.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">s<\/td>\n<td width=\"148\">char*<\/td>\n<td width=\"395\">Python string without embedded nulls to C char*.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">s#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Any Python string to C address and length.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">t#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Read-only single-segment buffer to C address and length.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">u<\/td>\n<td width=\"148\">Py_UNICODE*<\/td>\n<td width=\"395\">Python Unicode without embedded nulls to C.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">u#<\/td>\n<td width=\"148\">Py_UNICODE*+int<\/td>\n<td width=\"395\">Any Python Unicode C address and length.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">w#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Read\/write single-segment buffer to C address and length.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">z<\/td>\n<td width=\"148\">char*<\/td>\n<td width=\"395\">Like s, also accepts None (sets C char* to NULL).<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">z#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Like s#, also accepts None (sets C char* to NULL).<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">(&#8230;)<\/td>\n<td width=\"148\">as per &#8230;<\/td>\n<td width=\"395\">A Python sequence is treated as one argument per item.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">|<\/td>\n<td width=\"148\"><\/td>\n<td width=\"395\">The following arguments are optional.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">:<\/td>\n<td width=\"148\"><\/td>\n<td width=\"395\">Format end, followed by function name for error messages.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">;<\/td>\n<td width=\"148\"><\/td>\n<td width=\"395\">Format end, followed by entire error message text.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><\/h2>\n<h2>Returning Values<\/h2>\n<p><em>Py_BuildValue<\/em>\u00a0\u0985\u09a8\u09c7\u0995\u099f\u09be\u00a0<em>PyArg_ParseTuple<\/em>\u00a0\u098f\u09b0 \u09ae\u09a4 \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u098f \u0995\u09be\u099c \u0995\u09b0\u09c7 \u09a8\u09a4\u09c1\u09a8 \u0995\u09b0\u09c7 \u09a4\u09c8\u09b0\u09bf \u09ae\u09be\u09a8\u09c7\u09b0 \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09c7 \u0986\u09b8\u09b2 \u09ae\u09be\u09a8 \u09a6\u09c7\u09df\u0964 \u0995\u09bf\u09ad\u09be\u09ac\u09c7 \u098f\u09a1 \u09ab\u09be\u0982\u09b6\u09a8 \u09ac\u09be\u09b8\u09cd\u09a4\u09ac\u09be\u09df\u09a8 \u0995\u09b0\u09a4\u09c7 \u09b9\u09df \u09a4\u09be\u09b0 \u098f\u0995\u099f\u09bf \u0989\u09a6\u09be\u09b9\u09b0\u09a3 \u09a8\u09bf\u099a\u09c7 \u09a6\u09c7\u09df\u09be \u09b9\u09b2\u0983<\/p>\n<p>static PyObject *foo_add(PyObject *self, PyObject *args) {\u00a0\u00a0 int a;\u00a0\u00a0 int b;\u00a0\u00a0\u00a0 if (!PyArg_ParseTuple(args, &#8220;ii&#8221;, &amp;a, &amp;b)) {\u00a0\u00a0\u00a0\u00a0 return NULL;\u00a0\u00a0 }\u00a0\u00a0 return Py_BuildValue(&#8220;i&#8221;, a + b);}<\/p>\n<p>Python \u098f \u0995\u09b0\u09b2\u09c7 \u09a8\u09bf\u099a\u09c7\u09b0 \u09ae\u09a4 \u09b9\u09ac\u09c7\u0983<\/p>\n<p>def add(a, b):\u00a0\u00a0 return (a + b)<\/p>\n<p>\u0986\u09aa\u09a8\u09bf Python \u098f\u09b0 \u09b2\u09bf\u09b8\u09cd\u099f \u098f\u09b0 \u09b8\u09be\u09b9\u09be\u09af\u09cd\u09af\u09c7 \u09ab\u09be\u0982\u09b6\u09a8\u099f\u09bf \u09a5\u09c7\u0995\u09c7 \u09a6\u09c1\u0987 \u09a7\u09b0\u09a8\u09c7\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2 \u09a6\u09c7\u0996\u09be\u09a4\u09c7 \u09aa\u09be\u09b0\u09c7\u09a8, \u09af\u09c7\u09ae\u09a8\u0983<\/p>\n<hr \/>\n<pre>static PyObject *foo_add(PyObject *self, PyObject *args) {\r\n\u00a0\u00a0 int a;\r\n\u00a0\u00a0 int b;\r\n\r\n\u00a0\u00a0 if (!PyArg_ParseTuple(args, \"ii\", &amp;a, &amp;b)) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 return NULL;\r\n\u00a0\u00a0 }\r\n\u00a0\u00a0 return Py_BuildValue(\"i\", a + b);\r\n}<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0987 \u0995\u09cb\u09a1\u099f\u09bf Python \u098f \u0995\u09b0\u09be \u09b9\u09b2\u09c7 \u098f\u09b0\u0995\u09ae \u09b9\u09ac\u09c7\u0983<\/p>\n<hr \/>\n<pre>def add(a, b):\r\n\u00a0\u00a0 return (a + b)<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<h2>Py_BuildValue\u00a0\u09ab\u09be\u0982\u09b6\u09a8<\/h2>\n<p><strong>Py_BuildValue<\/strong>\u00a0\u09ab\u09be\u0982\u09b6\u09a8\u09c7\u09b0 \u09b8\u09cd\u099f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be\u09b0\u09cd\u09a1 \u09b8\u09bf\u0997\u09cd\u09a8\u09c7\u099a\u09be\u09b0 \u09b9\u099a\u09cd\u099b\u09c7 \u2212<\/p>\n<hr \/>\n<pre>PyObject* Py_BuildValue(char* format,...)<\/pre>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>\u098f\u0996\u09be\u09a8\u09c7\u00a0<em>format<\/em>\u00a0\u098f\u0995\u099f\u09bf C \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u09af\u09be \u0995\u09cb\u09a8 Python \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09a4\u09c8\u09b0\u09bf \u09b9\u09ac\u09c7 \u09b8\u09c7\u099f\u09be\u09b0 \u09ac\u09b0\u09cd\u09a8\u09a8\u09be \u0995\u09b0\u09c7\u0964 \u09a8\u09bf\u099a\u09c7\u09b0\u00a0<em>Py_BuildValue<\/em>\u00a0\u0986\u09b0\u09cd\u0997\u09c1\u09ae\u09c7\u09a8\u09cd\u099f \u0997\u09c1\u09b2\u09cb \u09aa\u09cd\u09b0\u0995\u09c3\u09a4\u09aa\u0995\u09cd\u09b7\u09c7 C \u098f\u09b0 \u09ae\u09be\u09a8, \u09af\u09be \u09a5\u09c7\u0995\u09c7 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u099f\u09bf\u09b0 \u09b0\u09c7\u09b8\u09be\u09b2\u09cd\u099f \u09a4\u09c8\u09b0\u09bf \u09b9\u09df\u0964\u00a0<em>PyObject*<\/em>\u00a0\u098f\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2 \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c7\u0964 \u09a8\u09bf\u099a\u09c7\u09b0 \u099f\u09c7\u09ac\u09bf\u09b2\u09c7 \u09aa\u09cd\u09b0\u099a\u09b2\u09bf\u09a4 \u0995\u09bf\u099b\u09c1 \u0995\u09cb\u09a1 \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u09a6\u09c7\u09df\u09be \u09b9\u09b2, \u09af\u09be\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09ae\u09be\u099d\u09c7 \u09ae\u09be\u099d\u09c7 \u098f\u0995 \u09ac\u09be \u098f\u0995\u09be\u09a7\u09bf\u0995 \u0995\u09cb\u09a1 \u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u0982 \u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u098f \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u09b9\u09df\u0964<\/p>\n<table width=\"604\">\n<tbody>\n<tr>\n<td width=\"60\"><strong>Code<\/strong><\/td>\n<td width=\"148\"><strong>C type<\/strong><\/td>\n<td width=\"395\"><strong>Meaning<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"60\">c<\/td>\n<td width=\"148\">char<\/td>\n<td width=\"395\">A C char becomes a Python string of length 1.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">d<\/td>\n<td width=\"148\">double<\/td>\n<td width=\"395\">A C double becomes a Python float.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">f<\/td>\n<td width=\"148\">float<\/td>\n<td width=\"395\">A C float becomes a Python float.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">i<\/td>\n<td width=\"148\">int<\/td>\n<td width=\"395\">A C int becomes a Python int.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">l<\/td>\n<td width=\"148\">long<\/td>\n<td width=\"395\">A C long becomes a Python int.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">N<\/td>\n<td width=\"148\">PyObject*<\/td>\n<td width=\"395\">Passes a Python object and steals a reference.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">O<\/td>\n<td width=\"148\">PyObject*<\/td>\n<td width=\"395\">Passes a Python object and INCREFs it as normal.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">O&amp;<\/td>\n<td width=\"148\">convert+void*<\/td>\n<td width=\"395\">Arbitrary conversion<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">s<\/td>\n<td width=\"148\">char*<\/td>\n<td width=\"395\">C 0-terminated char* to Python string, or NULL to None.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">s#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">C char* and length to Python string, or NULL to None.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">u<\/td>\n<td width=\"148\">Py_UNICODE*<\/td>\n<td width=\"395\">C-wide, null-terminated string to Python Unicode, or NULL to None.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">u#<\/td>\n<td width=\"148\">Py_UNICODE*+int<\/td>\n<td width=\"395\">C-wide string and length to Python Unicode, or NULL to None.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">w#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Read\/write single-segment buffer to C address and length.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">z<\/td>\n<td width=\"148\">char*<\/td>\n<td width=\"395\">Like s, also accepts None (sets C char* to NULL).<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">z#<\/td>\n<td width=\"148\">char*+int<\/td>\n<td width=\"395\">Like s#, also accepts None (sets C char* to NULL).<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">(&#8230;)<\/td>\n<td width=\"148\">as per &#8230;<\/td>\n<td width=\"395\">Builds Python tuple from C values.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">[&#8230;]<\/td>\n<td width=\"148\">as per &#8230;<\/td>\n<td width=\"395\">Builds Python list from C values.<\/td>\n<\/tr>\n<tr>\n<td width=\"60\">{&#8230;}<\/td>\n<td width=\"148\">as per &#8230;<\/td>\n<td width=\"395\">Builds Python dictionary from C values, alternating keys and values.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>{&#8230;} \u0995\u09cb\u09a1\u099f\u09bf C \u098f\u09b0 \u099c\u09cb\u09dc \u09b8\u0982\u0996\u09cd\u09af\u0995 \u09ae\u09be\u09a8\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09a1\u09bf\u0995\u09b6\u09a8\u09be\u09b0\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c7, \u09af\u09c7\u09ae\u09a8 Py_BuildValue(&#8220;{issi}&#8221;,23,&#8221;zig&#8221;,&#8221;zag&#8221;,42) \u0995\u09cb\u09a1\u099f\u09bf Python \u098f\u09b0 \u09ae\u09a4 \u098f\u0987 \u09a1\u09bf\u0995\u09b6\u09a8\u09be\u09b0\u09bf\u099f\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c7\u0983 {23:&#8217;zig&#8217;,&#8217;zag&#8217;:42}.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 Python \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 C, C++ \u0985\u09a5\u09ac\u09be Java \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u098f\u09b0 \u09af\u09c7\u0995\u09cb\u09a8 \u0995\u09cb\u09a1 Python script \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u0987\u09a8\u09cd\u099f\u09c7\u0997\u09cd\u09b0\u09c7\u099f\/ \u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0 \u0995\u09b0\u09be \u09af\u09be\u09df, \u09af\u09be\u0995\u09c7 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ac\u09b2\u09c7\u0964 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09ab\u09be\u0987\u09b2\u0997\u09c1\u09b2\u09cb \u09b8\u09cd\u09ac\u09be\u09ad\u09be\u09ac\u09bf\u0995 C \u09b2\u09be\u0987\u09ac\u09cd\u09b0\u09c7\u09b0\u09c0\u09b0 \u09ae\u09a4, Unix \u0985\u09aa\u09be\u09b0\u09c7\u099f\u09bf\u0982 \u09b8\u09bf\u09b8\u09cd\u099f\u09c7\u09ae \u098f\u00a0.so\u00a0\u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f \u0993 Windows \u09ae\u09c7\u09b6\u09bf\u09a8\u09c7.dll\u00a0\u09ab\u09b0\u09ae\u09cd\u09af\u09be\u099f\u09c7\u09b0 \u09b9\u09df\u0964 &nbsp; \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b2\u09c7\u0996\u09be\u09b0 \u09aa\u09c2\u09b0\u09cd\u09ac\u09b6\u09b0\u09cd\u09a4 Python \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b2\u09bf\u0996\u09a4\u09c7 \u09b9\u09b2\u09c7 Python \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u098f\u09b0 \u09a6\u09b0\u0995\u09be\u09b0 \u09aa\u09dc\u09c7 &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=11166\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1613],"tags":[446,1636,1637,505,408,1616,1218,1635,407,600,1638],"class_list":["post-11166","post","type-post","status-publish","format-standard","hentry","category-python-complete-courses","tag-c","tag-extension","tag-mapping","tag-method","tag-programming","tag-python","tag-table","tag-1635","tag-407","tag-600","tag-1638","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":11070,"url":"http:\/\/bangla.sitestree.com\/?p=11070","url_meta":{"origin":11166,"position":0},"title":"\u09aa\u09be\u0987\u09a5\u09a8 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u099f\u09bf\u0989\u099f\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09b2 :  \u0987\u09a8\u09cd\u09b8\u099f\u09b2\u09c7\u09b6\u09a8 (Python &#8211; Environment Setup in bangla)","author":"","date":"October 20, 2015","format":false,"excerpt":"\u09b2\u09bf\u0996\u09c7\u099b\u09c7\u09a8: \u0986\u09ac\u09b0\u09be\u09b0 \u09b0\u09c7\u099c\u0993\u09df\u09be\u09a8 \u09b6\u09c1\u09ad \u00a0 1.3 Python - Environment Setup Local Environment Setup Local Environment Setup \u098f\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0995\u09ae\u09cd\u09aa\u09bf\u0989\u099f\u09be\u09b0 \u098f\u09b0 \u09b8\u09be\u09b0\u09cd\u099a \u0987\u099e\u09cd\u099c\u09bf\u09a8\u09c7 \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8 \u2018Python\u2019 \u098f\u09ac\u0982 \u09a6\u09c7\u0996\u09c1\u09a8 \u098f\u099f\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u0995\u09ae\u09cd\u09aa\u09bf\u0989\u099f\u09be\u09b0\u09c7 \u0987\u09a8\u09cd\u09b8\u099f\u09b2 \u0995\u09b0\u09be \u0986\u099b\u09c7 \u0995\u09bf\u09a8\u09be, \u098f\u09ac\u0982 \u09af\u09a6\u09bf \u09a5\u09be\u0995\u09c7 \u09a4\u09ac\u09c7 \u098f\u09b0 \u09ad\u09be\u09b0\u09cd\u09b8\u09a8\u099f\u09bf \u099c\u09c7\u09a8\u09c7 \u09b0\u09be\u0996\u09c1\u09a8\u0964 \u098f\u099b\u09dc\u09be\u0993 Python \u098f\u09b0 \u0985\u09ab\u09bf\u09b6\u09bf\u09df\u09be\u09b2 \u0993\u09df\u09c7\u09ac\u09b8\u09be\u0987\u099f (http:\/\/www.python.org\/) \u09a5\u09c7\u0995\u09c7\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/bangla.sitestree.com\/?cat=1613"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7326,"url":"http:\/\/bangla.sitestree.com\/?p=7326","url_meta":{"origin":11166,"position":1},"title":"C \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2","author":"Author-Check- Article-or-Video","date":"March 17, 2015","format":false,"excerpt":"C \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u00a0 Mir Rasel Jahangirnagar University, Dhaka, Bangladesh. \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u09b9\u09b2\u09cb \u098f\u0995\u09cd\u09b8\u099f\u09c7\u09a8\u09b6\u09a8 \u09b8\u09ae\u09c3\u09a6\u09cd\u09a7 \u09ab\u09be\u0987\u09b2 .h \u09af\u09be C \u09ab\u09be\u0982\u09b6\u09a8 \u098f\u09b0 \u0998\u09cb\u09b7\u09a3\u09be \u09ac\u09b9\u09a8 \u0995\u09b0\u09c7 \u098f\u09ac\u0982 \u09a6\u09c0\u09b0\u09cd\u0998 \u09b8\u0982\u099c\u09cd\u099e\u09be\u0993 \u09ac\u09b9\u09a8 \u0995\u09b0\u09c7 \u09af\u09be \u0995\u09df\u09c7\u0995\u099f\u09bf \u0986\u09b2\u09be\u09a6\u09be \u09b8\u09cb\u09b0\u09cd\u09b8 \u09ab\u09be\u0987\u09b2\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09b6\u09c7\u09df\u09be\u09b0\u0995\u09c3\u09a4 \u09a5\u09be\u0995\u09c7\u0964 \u09a6\u09c1\u0987 \u09a7\u09b0\u09a3\u09c7\u09b0 \u09b9\u09c7\u09a1\u09be\u09b0 \u09ab\u09be\u0987\u09b2 \u0986\u099b\u09c7\u0983 \u098f\u0995\u099f\u09bf \u09b9\u09b2\u09cb \u09af\u09be \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09be\u09b0\u09b0\u09be \u09b2\u09bf\u0996\u09c7 \u098f\u09ac\u0982 \u0985\u09a8\u09cd\u09af\u099f\u09bf \u09b8\u0982\u0995\u09b2\u09bf\u09a4\u2026","rel":"","context":"In &quot;Root&quot;","block_context":{"text":"Root","link":"http:\/\/bangla.sitestree.com\/?cat=1"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11068,"url":"http:\/\/bangla.sitestree.com\/?p=11068","url_meta":{"origin":11166,"position":2},"title":"\u09aa\u09be\u0987\u09a5\u09a8 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u099f\u09bf\u0989\u099f\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09b2 :  \u09ac\u09c7\u09b8\u09bf\u0995 (Python Tutorial in Bangla : Basic)","author":"","date":"October 19, 2015","format":false,"excerpt":"\u09b2\u09bf\u0996\u09c7\u099b\u09c7\u09a8: \u0986\u09ac\u09b0\u09be\u09b0 \u09b0\u09c7\u099c\u0993\u09df\u09be\u09a8 \u09b6\u09c1\u09ad 1.1 Python - Tutorial Python \u098f\u0995\u099f\u09bf general-purpose interpreted, \u09b8\u09be\u09a7\u09be\u09b0\u09a3, \u09b8\u09b9\u099c\u09ac\u09cb\u09a7\u09cd\u09af, \u0989\u09a6\u09cd\u09a6\u09c7\u09b6\u09cd\u09af-\u0995\u09c7\u09a8\u09cd\u09a6\u09cd\u09b0\u09bf\u0995 \u098f\u09ac\u0982 \u0989\u099a\u09cd\u099a\u09ae\u09be\u09a8\u09c7\u09b0 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u09b2\u09cd\u09af\u09be\u0982\u0997\u09c1\u09df\u09c7\u099c\u0964 \u09e7\u09ef\u09ee\u09eb-\u09e7\u09ef\u09ef\u09e6 \u09b8\u09be\u09b2\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u0997\u09c1\u0987\u09a6\u09cb \u09ad\u09cd\u09af\u09be\u09a8 \u09b0\u09b8\u09be\u09ae (Guido van Rossum) \u098f\u0987 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u09b2\u09cd\u09af\u09be\u0982\u0997\u09c1\u09df\u09c7\u099c \u09b8\u09c3\u09b7\u09cd\u099f\u09bf \u0995\u09b0\u09c7\u09a8\u0964 \u098f\u0987 \u099f\u09bf\u0989\u099f\u09cb\u09b0\u09bf\u09df\u09be\u09b2\u099f\u09bf Python \u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995\u09c7 \u09af\u09a5\u09c7\u09b7\u09cd\u099f \u09a7\u09be\u09b0\u09a3\u09be \u09a6\u09bf\u09ac\u09c7\u0964 \u0995\u09be\u09a6\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09af\u09be\u09b0\u09be \u098f\u0995\u09c7\u09ac\u09be\u09b0\u09c7 \u09b6\u09c1\u09b0\u09c1 \u09a5\u09c7\u0995\u09c7 Python \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u09b6\u09bf\u0996\u09a4\u09c7 \u099a\u09be\u09a8,\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/bangla.sitestree.com\/?cat=1613"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11079,"url":"http:\/\/bangla.sitestree.com\/?p=11079","url_meta":{"origin":11166,"position":3},"title":"\u09aa\u09be\u0987\u09a5\u09a8 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 : \u09ac\u09c7\u09b8\u09bf\u0995 \u09b8\u09bf\u09a8\u099f\u09cd\u09af\u09be\u0995\u09cd\u09b8 (Python Basic Syntax in bangla)","author":"","date":"October 21, 2015","format":false,"excerpt":"1.4 Python Basic Syntax \u0986\u09aa\u09a8\u09be\u09b0 Python \u09aa\u09cd\u09b0\u09ae\u09cd\u09aa\u099f \u098f \u09a8\u09bf\u099a\u09c7\u09b0 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u099f\u09bf \u09b2\u09bf\u0996\u09c1\u09a8 \u098f\u09ac\u0982 Enter \u099a\u09be\u09aa\u09c1\u09a8\u0964 >>> print \"Hello, Python!\" \u00a0 \u0985\u09a8\u09c7\u0995 \u09b8\u09ae\u09df \u09a8\u09a4\u09c1\u09a8 \u09ad\u09be\u09b0\u09cd\u09b8\u09a8\u09c7 \u0995\u09be\u099c \u0995\u09b0\u09b2\u09c7 \u09ac\u09cd\u09b0\u09cd\u09af\u09be\u0995\u09c7\u099f\u09c7\u09b0 \u09ad\u09c7\u09a4\u09b0 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u099f \u09b8\u09cd\u099f\u09c7\u099f\u09ae\u09c7\u09a8\u09cd\u099f \u09a6\u09bf\u09a4\u09c7 \u09b9\u09df \u09af\u09c7\u09ae\u09a8, print (\"Hello, Python!\")\u0964 \u09af\u09be\u0987\u09b9\u09cb\u0995, 2.4.3 \u09ad\u09be\u09b0\u09cd\u09b8\u09a8\u09c7 \u09b0\u09be\u09a8 \u0989\u09aa\u09b0\u09c7\u09b0 \u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09aa\u09cd\u099f\u099f\u09bf \u09b0\u09be\u09a8 \u0995\u09b0\u09b2\u09c7 \u09a8\u09bf\u099a\u09c7\u09b0 \u09ab\u09b2\u09be\u09ab\u09b2\u099f\u09bf \u0986\u09b8\u09ac\u09c7\u0964 Hello, Python! \u00a0 Python\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/bangla.sitestree.com\/?cat=1613"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11101,"url":"http:\/\/bangla.sitestree.com\/?p=11101","url_meta":{"origin":11166,"position":4},"title":"\u09aa\u09be\u0987\u09a5\u09a8 \u0997\u09cd\u09b0\u09be\u09ab\u09bf\u0995\u09cd\u09af\u09be\u09b2 \u0987\u0989\u099c\u09be\u09b0 \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8 \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 (Tkinter) (Python GUI Programming (Tkinter))","author":"","date":"October 29, 2015","format":false,"excerpt":"Python GUI Programming (Tkinter) \u0997\u09cd\u09b0\u09be\u09ab\u09bf\u0995\u09be\u09b2 \u0987\u0989\u09b8\u09be\u09b0 \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8 (GUIs) \u09a1\u09c7\u09ad\u09c7\u09b2\u09be\u09aa \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af Python \u09ac\u09c7\u09b6 \u0995\u09bf\u099b\u09c1 \u0985\u09aa\u09b6\u09a8 \u09a6\u09bf\u09df\u09c7 \u09a5\u09be\u0995\u09c7\u0964 \u098f\u09a6\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u09b8\u09ac\u099a\u09c7\u09df\u09c7 \u0997\u09c1\u09b0\u09c1\u09a4\u09cd\u09ac\u09aa\u09c2\u09b0\u09cd\u09a8 \u09b9\u09b2 Tkinter (Python \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u09b0\u09ac\u09b0\u09be\u09b9\u0995\u09c3\u09a4 GUI toolkit \u098f\u09b0 \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09ab\u09c7\u09b8), wxPython (\u0993\u09aa\u09c7\u09a8-\u09b8\u09cb\u09b0\u09cd\u09b8 Python \u0987\u09a8\u099f\u09be\u09b0\u09ab\u09c7\u09b8, http:\/\/wxpython.org \u098f \u09aa\u09be\u0993\u09df\u09be \u09af\u09be\u09ac\u09c7), \u098f\u09ac\u0982 JPython (Java\u2019\u09b0 \u099c\u09a8\u09cd\u09af \u09aa\u09cd\u09b0\u099a\u09b2\u09bf\u09a4 Python \u09aa\u09cb\u09b0\u09cd\u099f, http:\/\/www.jython.org \u098f \u09aa\u09be\u0993\u09df\u09be \u09af\u09be\u09ac\u09c7)\u0964\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/bangla.sitestree.com\/?cat=1613"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tutorialspoint.com\/python\/images\/tkwindow.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8376,"url":"http:\/\/bangla.sitestree.com\/?p=8376","url_meta":{"origin":11166,"position":5},"title":"\u09b8\u09bf \u09ab\u09be\u0987\u09b2 \u0985\u09aa\u09be\u09b0\u09c7\u09b6\u09a8\u09cd\u09b8 . C File I\/O","author":"Author-Check- Article-or-Video","date":"April 4, 2015","format":false,"excerpt":"\u09b6\u09c7\u0996 \u0986\u09ac\u09c1\u09b2 \u09b9\u09be\u09b6\u09bf\u09ae \u0996\u09c1\u09b2\u09a8\u09be \u0996\u09be\u09a8\u099c\u09be\u09b9\u09be\u09a8 \u0986\u09b2\u09c0 \u0995\u09b2\u09c7\u099c \u09ac\u09be\u0997\u09c7\u09b0\u09b9\u09be\u099f, \u0996\u09c1\u09b2\u09a8\u09be\u0964 \u00a0 \u09e7. \u09ab\u09be\u0987\u09b2 \u0996\u09cb\u09b2\u09be \u09e8. \u09ab\u09be\u0987\u09b2 \u09a5\u09c7\u0995\u09c7 \u0995\u09cb\u09a8 \u0995\u09bf\u099b\u09c1 \u09aa\u09a1\u09bc\u09be \u09ac\u09be \u09ab\u09be\u0987\u09b2\u09c7 \u0995\u09bf\u099b\u09c1 \u09b2\u09c7\u0996\u09be \u09e9. \u09ab\u09be\u0987\u09b2 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09be \u09ab\u09be\u0987\u09b2 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u0986\u09ae\u09be\u09a6\u09c7\u09b0 \u098f\u0995\u099f\u09be \u09ab\u09be\u0987\u09b2 handle \u09a6\u09b0\u0995\u09be\u09b0\u0964 \u098f\u099f\u09be\u09b0 \u09ae\u09be\u09a7\u09cd\u09af\u09ae\u09c7 \u0986\u09ae\u09b0\u09be \u098f\u0995\u099f\u09be \u09ab\u09be\u0987\u09b0\u0995\u09c7 \u099a\u09bf\u09b9\u09cd\u09a8\u09bf\u09a4 \u0995\u09b0\u09bf\u0964 \u098f\u099f\u09be FILE \u099f\u09be\u0987\u09aa\u09c7\u09b0 \u098f\u0995\u099f\u09be \u09aa\u09af\u09bc\u09c7\u09a8\u09cd\u099f\u09be\u09b0 \u09af\u09c7\u099f\u09be\u0995\u09c7 \u098f\u09ad\u09be\u09ac\u09c7 \u09a1\u09bf\u0995\u09cd\u09b2\u09c7\u09af\u09bc\u09be\u09b0\u2026","rel":"","context":"In &quot;\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09b8\u09bf \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u0964 C Programming Basics&quot;","block_context":{"text":"\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09b8\u09bf \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae\u09bf\u0982 \u0964 C Programming Basics","link":"http:\/\/bangla.sitestree.com\/?cat=239"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/11166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11166"}],"version-history":[{"count":5,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/11166\/revisions"}],"predecessor-version":[{"id":11173,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/11166\/revisions\/11173"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11166"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}