Как использовать определенные пользователем python объекты в MATLAB? - PullRequest
2 голосов
/ 07 мая 2020

У меня есть класс в Python, у которого есть ресурсы (например, сокеты). Я хотел бы использовать класс в MATLAB. Для меня важно убедиться, что объект python продолжит удерживать свои ресурсы. Чтобы проверить, как MATLAB справится с этим, я создал следующий класс в Python:

class Klaus:
    def __init__(self, id):
        self.id = id
        print "klaus::ctor::id={}".format(self.id)

    def __del__(self):
        print "klaus::dtor::id={}".format(self.id)

И вот мой код MATLAB:

klaus = py.klaus.Klaus(42);
for i = 1:5
    disp("klaus says " + klaus.id);
end
delete(klaus);

Выходные данные MATLAB, кажется, находятся в очень непонятный порядок:

klaus::ctor::id=42.0
klaus::dtor::id=42.0
klaus says 42
klaus says 42
klaus says 42
klaus says 42
klaus says 42
klaus::dtor::id=42.0

Я исключил, что ctor будет первым, после «klaus говорит» и dtor будет в конце. Простой тест, написанный на python, дает исключенное поведение. Но я не понимаю, почему порядок отличается в MATLAB.

edit: мне не удалось скопировать

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