Как вызвать класс python из класса cython [duplicate]

<html>
    <head>
        <title>HTML Document</title>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    </head>

    <body>
        <div id="hover-id">
            Hello World
        </div>

        <script>
            jQuery(document).ready(function($){
                $(document).on('mouseover', '#hover-id', function(){
                    $(this).css('color','yellowgreen');
                });

                $(document).on('mouseout', '#hover-id', function(){
                    $(this).css('color','black');
                });
            });
        </script>
    </body>
</html>
3
задан 9000 6 March 2017 в 18:52
поделиться

1 ответ

Означает ли это, если вы определили класс python с cdef all self. * атрибуты должны быть определены cdef?

Да. Это явно указано в документации :

Атрибуты в классах cdef ведут себя иначе, чем атрибуты в обычных классах:

  • Все атрибуты должен быть предварительно объявлен во время компиляции
  • ...

Вы можете с радостью сохранить строку, указав атрибут типа объекта :

cdef public object msg

Внутренне причина в том, что в cdef class нет словаря, который экономит место и ускоряет доступ к атрибуту, но это означает, что он не может иметь произвольный атрибуты, добавленные во время выполнения. Это достаточно похоже на использование __slots__ в обычном классе Python.

5
ответ дан DavidW 19 August 2018 в 09:00
поделиться
  • 1
    спасибо, что помогло очистить мои сомнения. – Vikram Karandikar 8 March 2017 в 07:15
Другие вопросы по тегам:

Похожие вопросы: