On Wednesday 21 November 2007, Linos wrote: > Hello all, > i have a question about speed optimization with PyQt, i cant find any > clear explanation about this question in google, i am developing an app > with many .py files, in the beginning i am using this imports. > > from PyQt4.QtCore import * > from PyQt4.QtGui import * > from PyQt4.QtSql import * > > to have no problem using classes but i would like to post any questions i > suppose any people on the list have to know: > > 1- if i import a file and this file import the same, it is imported two > times wasting the same time in the same imports other time? > > main.py > from PyQt4.QtCore import * > from PyQt4.QtGui import * > from PyQt4.QtSql import * > import testdlg > > testdlg.py > from PyQt4.QtCore import * > from PyQt4.QtGui import * > from PyQt4.QtSql import *
Two things happen when importing... The very first time a module is imported it is parsed and executed (if it is a pure Python module) or loaded and initialised (if it is a C/C++ extension module). Every time a module is imported the objects you have asked to be imported are placed in the importing module's dictionary. > 2- i have changed any files to import like this: > > from PyQt4.QtCore import QRegExp, QString, Qt, SIGNAL, SLOT, QVariant, > QChar from PyQt4.QtGui import QLabel, QDialog, QLineEdit, QDialogButtonBox, > QGridLayout, QMessageBox, QApplication, QIcon, QInputDialog > from PyQt4.QtSql import QSqlQuery > > i know other people (and pyuic4) use this : > > from PyQt4 import QtCore > > and later use ever first QtCore in classes names "QtCore.QString" but i > dont like to write too much unnecessary code when i know i will not have > name collision, any other way to speed up the imports? Import speed increases and memory usage decreases as you go down the following list... from PyQt4.QtCore import * from PyQt4.QtCore import QString, Qt, etc from PyQt4 import QtCore In terms of increasing speed during execution the order is... from PyQt4 import QtCore from PyQt4.QtCore import * from PyQt4.QtCore import QString, Qt, etc > 3- is this really important to speed up the application? No. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
