cython

Форк
0
/
analyse_expressions.srctree 
47 строк · 912.0 Байт
1
# mode: run
2

3
PYTHON setup.py build_ext --inplace
4
PYTHON main.py
5

6
######## moda.pyx ########
7

8
cpdef mod_name():
9
    return "mod A"
10

11
cdef class ClassA:
12
    cpdef class_name(self):
13
        return "Class A"
14

15
cdef class ClassB(ClassA):
16
    cpdef class_name(self):
17
        return "Class B"
18

19
######## modb.pyx ########
20

21
import moda
22

23
cpdef mod_name_override():
24
    return "I was overridden"
25

26
moda.mod_name = mod_name_override
27

28
######## setup.py ########
29

30
from setuptools import setup
31
from Cython.Build import cythonize
32
import Cython.Compiler.Options
33

34
Cython.Compiler.Options.lookup_module_cpdef = True
35

36
setup(
37
        ext_modules = cythonize(["moda.pyx", "modb.pyx"],
38
            compiler_directives={'language_level': 3})
39
)
40

41
######## main.py ########
42

43
import moda, modb
44

45
assert moda.mod_name() == "I was overridden"
46
assert moda.mod_name == modb.mod_name_override
47
assert moda.ClassA.class_name != moda.ClassB.class_name
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.