import Extest n=9 r=Extest.fac(n) print r
import Extest print 'Extest.fac(5)=', Extest.fac(5)
# test import Extest fac = Extest.fac(10) print(fac) print(Extest.doppel("abcdefg")) Extest.test() print(Extest.add(1, 5))
# -*- coding: utf-8 -*- """ Created on Fri Aug 2 12:53:14 2019 @author: comingboy """ # encoding: utf-8 import Extest print(Extest.fac(5))
#!/usr/bin/python import Extest print("fac(4) = ", Extest.fac(4)) print("fac(5) = ", Extest.fac(5)) print("fac(6) = ", Extest.fac(6)) print("fac(7) = ", Extest.fac(7)) print Extest.doppel('bart')
def fac(x): if (x < 2): return 1 return Extest.fac(x)
def fib2(x): return Extest.fib2(x)
import Extest print(Extest.abs(-2)) print(Extest.reverse('abc')) Extest.test()
from timeit import timeit import Extest import math math.factorial(12) print timeit("Extest.fac(10)", setup="import Extest") print timeit("math.factorial(10)", setup="import math") print Extest.fac(10) print math.factorial(10) print timeit( "Extest.doppel(\"asdkasjkdjaskdjaksjdkasjdkajskdjaksdjkasjdkasjdkjk123123123123123adasdasdasdasasda\")", setup="import Extest") print timeit( "\"asdkasjkdjaskdjaksjdkasjdkajskdjaksdjkasjdkasjdkjk123123123123123adasdasdasdasasda\"[::-1]" ) print Extest.doppel( "asdkasjkdjaskdjaksjdkasjdkajskdjaksdjkasjdkasjdkjk123123123123123adasdasdasdasasda" ) print "asdkasjkdjaskdjaksjdkasjdkajskdjaksdjkasjdkasjdkjk123123123123123adasdasdasdasasda"[:: -1]
def loop(n): print Extest.fac(n)
#!/usr/bin/env python # -*- coding: utf-8 -*- import Extest Extest.add(1, 2) Extest.fac(5) Extest.sum((1, 2, 3), 3) Extest.reverse('abcdefg') Extest.test()
import Extest Extest.test() print(Extest.fac(5)) print(Extest.reverse('hello'))
import sys import os sys.path.append(os.getcwd() + "/build/lib.win-amd64-3.6/") import Extest import time from ctypes import * import os # extest = cdll.LoadLibrary("E:\py_mix_c2\\build\\temp.win-amd64-3.6\Release\Extest.cp36-win_amd64.lib") start = time.time() a = Extest.reverse("abcd") timeC = time.time() - start print('C costs', timeC, 'the result is', a) start = time.time() b = list("abcd") b.reverse() b = ''.join(b) timePython = time.time() - start print('Python costs', timePython, 'the result is', b)
// конвертує дане C++ типу int в Python типу int return (PyObject*)Py_BuildValue("i", fac(num)); } // масив методів, які експортує модуль static PyMethodDef ExtestMethods[] = {{ "fac", Extest_fac, METH_VARARGS }, { NULL, NULL },}; void initExtest() // функція ініціалізації модуля { Py_InitModule("Extest", ExtestMethods); } ``` 2.Модуль Python, який створює і установлює модуль розширення за допомогою `distutils` (setup.py): ``` from distutils.core import setup, Extension setup(name='Extest', ext_modules=[Extension('Extest', sources=['main.cpp'])]) ``` 3.В командному рядку введіть (для Python 2.5 необхідне установлене MS Visual C++ 2003): setup.py build setup.py install 4.Перевірка роботи модуля в Python: """ import Extest Extest.fac(7) # 5040