YAQ about reloading python modules in Matlab after python changes
Ältere Kommentare anzeigen
I understand that there have been a number of questions regarding issues with Matlab not reloading python modules after they have been changed. Based off other answers, I have an acceptable solution, but I think I am hitting a bug.
My python:
class myTestClass:
def __init__(self, somestr):
self.loc = 1234
print("Init called")
def __del__(self):
print("Destructor")
def myTestFunc(self):
a = 456
print(f'My Test Func called loc={self.loc} a={a}')
My Matlab:
%clear classes
myMatlabTestClass = py.importlib.import_module('myMatlabTestClass');
py.importlib.reload(myMatlabTestClass);
pyclass = myMatlabTestClass.myTestClass("hello");
pyclass.myTestFunc()
The problem:
The above is sensitive to python code changes if I change the value of self.loc, but changing the value of a in myTestFunc requires the inclusion of clear classes.
I fear that clear classes will be too expensive and may impact other code, depending on where it is called.
I'd like to understand why a and self.loc would be treated differently here and if there is a workaround.
Antworten (1)
SHAQLAIN
am 24 Dez. 2023
class myTestClass:
def __init__(self, somestr):
self.loc = 1234
print("Init called")
def __del__(self):
print("Destructor")
def myTestFunc(self):
a = 456
print(f'My Test Func called loc={self.loc} a={a}')
2 Kommentare
Walter Roberson
am 24 Dez. 2023
Could you point out the difference between this and what was originally posted?
Alexander
am 1 Jan. 2024
Kategorien
Mehr zu Call Python from MATLAB finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!