<div dir="ltr"><div dir="ltr"><div>If you are talking about the simple Python console panel, and loading Python files from there, then you can skip the "
from .script_2 import TestClass".</div><div><br></div><div>If you notice, when you launch the script_2.py, you have a generated line similar to : <br></div><div>exec(Path('/tmp/tmp5g244g4w.py').read_text())</div><div><br></div><div>So it's reading and executing all the content of file 2 in the console context already.</div><div>So then, when file 1 will be executed, there will already be the class TestClass in the console context.</div><div><br></div><div>But, then to manage multiple files, it's not convenient. You should think about the smallest plugin, for instance <a href="https://github.com/wonder-sk/qgis-minimal-plugin">https://github.com/wonder-sk/qgis-minimal-plugin</a> Otherwise, it's difficult to manage IMHO.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 4 mai 2023 à 08:59, Raymond Nijssen via QGIS-Developer <<a href="mailto:qgis-developer@lists.osgeo.org">qgis-developer@lists.osgeo.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi developers,<br>
<br>
While writing a python script in the QGIS python console editor I needed <br>
to write a new class and for convenience I put that in its own python file.<br>
<br>
Both files are in the same directory, but I cannot import my class in <br>
the other script.<br>
<br>
Here's an example:<br>
<br>
<br>
# script_1.py<br>
<br>
from .script_2 import TestClass<br>
obj1 = TestClass('Ray')<br>
print(obj1)<br>
<br>
<br>
<br>
<br>
# script_2.py:<br>
<br>
class TestClass():<br>
<br>
     def __init__(self, name):<br>
         <a href="http://self.name" rel="noreferrer" target="_blank">self.name</a> = name<br>
<br>
     def __str__(self):<br>
         return f'TestClass[{<a href="http://self.name" rel="noreferrer" target="_blank">self.name</a>}]'<br>
<br>
<br>
<br>
It all works properly if I put my class definition in script_1 but as <br>
the code is growing (and a customer of mine needs to understand this <br>
too) it would really be nice to split the code over multiple files.<br>
Is there a way? Or another approach?<br>
<br>
Kind regards,<br>
Raymond<br>
_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div></div>