python beginner problem(?)

Steve Holden steve at holdenweb.com
Wed Feb 6 19:03:13 EST 2008


Alan Illeman wrote:
> Win2k Pro - installed python: ok
> 
> Example 2.1 from DiveIntoPython tutorial copied
> and pasted into "Pythonwin - Python IDE and GUI
> Framework for Windows."
> --------------------------------------------------------------
> def buildConnectionString(params):
>     """Build a connection string from a dictionary of parameters.
> 
>     Returns string."""
>     return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
> 
> if __name__ == "__main__":
>     myParams = {"server":"mpilgrim", \
>                 "database":"master", \
>                 "uid":"sa", \
>                 "pwd":"secret" \
>                 }
>     print buildConnectionString(myParams)
> --------------------------------------------------------------
> 
> produces..
> 
> =================================================
>>>> C:\Python25\Lib\site-packages\pythonwin\pywin\mfc\object.py:
> 23: DeprecationWarning: raising a string exception is deprecated
>   raise win32ui.error, "The MFC object has died."
> pwd=secret;database=master;uid=sa;server=mpilgrim
> =================================================
> 
> DiveIntoPython example 2.1 result:
> server=mpilgrim;uid=sa;database=master;pwd=secret
> 
> ..which I realise is essentially the same (except for order).
> 
> I haven't ever (not that I remember) installed MFC.
> 
> Help!
> 
MFC is the Microsoft Foundation Classes, used by many Windows 
programmers to create applications. Mark Hammond, the author of 
PythonWin, used them to build that.

I am hugely surprised to find that PythonWin apparently raises string 
exceptions: this is an old programming technique, which should have been 
removed from anything designed to run on Python 2.5. That is why you see 
the message: it's only a warning, so you can ignore it. I am copying 
Mark on this message in case he's unaware of the issue.

Don't be surprised if the ordering of the elements in a dict is 
different between Python versions - a dict is an unordered collection, 
and so the ordering of the elements isn't supposed to be predictable. 
Mark Pilgrim probably used an earlier version of Python to prepare the 
examples, that text has been around some time (though it's still good).

regards
  Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/




More information about the Python-list mailing list