Cython, защищенные атрибуты - PullRequest
1 голос
/ 09 августа 2011

Мне нужно изменить непубличный атрибут экземпляра C в другом экземпляре.

cdef class C:
    cdef C superC

    cdef MakeToSuper(self, C other):
        other.superC    = C

protected, вероятно, добьется цели в C, нокак я могу достичь этого в Cython?

1 Ответ

0 голосов
/ 19 августа 2011

Вы пробовали?

_

Для сообщения "не трогай это, пожалуйста" (хорошо, только программисты на Python поймут это, но это лучше, чем ничего).

Существует также

__

Двойное подчеркивание похоже на "private" в Python (но все же можно получить доступ, если использовать надлежащие механизмы Python).

Перейдите к __ (двойное подчеркивание) и используйте магию питона для доступа к нему в других экземплярах вашего класса. Он будет по-прежнему доступен тем же волшебством из любого другого кода на Python, но каждый, кто знает, как его обойти, также знает, что он существует по определенной причине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...