cython

Форк
0
/
extern_builtins_T258.pyx 
39 строк · 922.0 Байт
1
# ticket: t258
2

3
cdef extern from "Python.h":
4

5
    ctypedef class __builtin__.list  [object PyListObject]:
6
        cdef Py_ssize_t allocated
7

8
    ctypedef class __builtin__.dict  [object PyDictObject]:
9
        pass
10

11
    cdef Py_ssize_t Py_SIZE(object o)
12

13
cdef list L = [1,2,4]
14
cdef dict d = {'A': 'a'}
15

16

17
def test_list(list L):
18
    """
19
    >>> test_list(list(range(10)))
20
    True
21
    >>> class list_subclass(list): pass
22
    >>> test_list(list_subclass([1,2,3]))
23
    True
24
    """
25
    return Py_SIZE(L) <= L.allocated
26

27
def test_tuple(tuple t):
28
    """
29
    Actual builtin types are restrictive wrt subclassing so optimizations can be safely performed.
30

31
    >>> test_tuple((1,2))
32
    2
33
    >>> class tuple_subclass(tuple): pass
34
    >>> test_tuple(tuple_subclass((1,2)))
35
    Traceback (most recent call last):
36
    ...
37
    TypeError: Argument 't' has incorrect type (expected tuple, got tuple_subclass)
38
    """
39
    return len(t)
40

41

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

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

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

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