cython

Форк
0
/
cdef_multiple_inheritance_nodict.pyx 
48 строк · 906.0 Байт
1
# Copied from cdef_multiple_inheritance.pyx
2
# but with __slots__ and without __dict__
3

4
cdef class CBase(object):
5
    cdef int a
6
    cdef c_method(self):
7
        return "CBase"
8
    cpdef cpdef_method(self):
9
        return "CBase"
10

11
class PyBase(object):
12
    __slots__ = []
13
    def py_method(self):
14
        return "PyBase"
15

16
cdef class Both(CBase, PyBase):
17
    """
18
    >>> b = Both()
19
    >>> b.py_method()
20
    'PyBase'
21
    >>> b.cp_method()
22
    'Both'
23
    >>> b.call_c_method()
24
    'Both'
25

26
    >>> isinstance(b, CBase)
27
    True
28
    >>> isinstance(b, PyBase)
29
    True
30
    """
31
    cdef c_method(self):
32
        return "Both"
33
    cpdef cp_method(self):
34
        return "Both"
35
    def call_c_method(self):
36
        return self.c_method()
37

38
cdef class BothSub(Both):
39
    """
40
    >>> b = BothSub()
41
    >>> b.py_method()
42
    'PyBase'
43
    >>> b.cp_method()
44
    'Both'
45
    >>> b.call_c_method()
46
    'Both'
47
    """
48
    pass
49

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

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

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

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