On Fri, 8 Aug 2008 08:02:55 +0100, Mark Summerfield <[EMAIL PROTECTED]> wrote: > On 2008-08-08, Boris Barbour wrote: >> Hi, >> >> Importing PyQt4.QtCore seems to alter or shadow the builtin hex() >> function. I'm afraid I haven't tracked things down further - I just >> learnt the hard way to "import" instead of "from import *". However, >> I'm not sure the clash is intended, so I'm reporting it. >> >> Best regards, >> >> Boris > [snip] > > It is unfortunate that doing * imports on PyQt4 brings in some objects > which don't begin with q or Q. Here's a solution for hex shown as an > IDLE session: > > >>> hex(123) > '0x7b' > >>> from PyQt4.QtCore import * > >>> hex(123) > > Traceback (most recent call last): > File "<pyshell#3>", line 1, in <module> > hex(123) > TypeError: argument 1 of hex() has an invalid type > >>> __builtins__.hex(123) > '0x7b' > >>> # restore built-in hex > >>> hex = __builtins__.hex > >>> hex(123) > '0x7b' > > In Python 3 you'll be able to do "import builtins" and use > builtins.hex(). But I'm hoping that in PyQt4 for Python 3, the * imports > will only import objects that begin with q or Q, forcing the handful of > objects that don't meet this criterion to either be imported explicitly > or accessed fully qualified. [Any comment on this, Phil?]
I'm not going to treat specific names differently as it's not a PyQt problem. Don't use "import *" - ever, in any Python code. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
