Michael's probably at least partially correct about this. The other, evil, side of using CodeDom is that we might be using the "static type compiler" which primarily exists for supporting ASP.NET. There we're not only using CodeDom but we're also required to generate a .NET type that ASP.NET can instantiate - and that creates something which isn't quite Python.
One interesting thing to try here is running the code outside of VS - e.g. just ipy foo.py from the command line. That will ensure you don't get the static type compiler - unfortunately I'm not sure off the top of my head if it'll get used or not in the WinForms scenario. ________________________________________ From: [EMAIL PROTECTED] [EMAIL PROTECTED] On Behalf Of Michael Foord [EMAIL PROTECTED] Sent: Wednesday, January 30, 2008 2:39 PM To: Discussion of IronPython Subject: Re: [IronPython] [python] [IronPythonStudio] NamespaceClassesandAssembly Files Pigneri, Rocco wrote: > Ah. In that case, I would strongly urge that the namespace class > functionality of IPS be removed so that developers don't have to keep > tip-toeing around that issue. Unless there is another way of using > classes in Python that I'm not aware of. > I strongly suspect it is the consequence of the CodeDOM provider that produces similarly structured code whatever the target language. I'm sure there *must* be some way to rectify this for IronPython though as those namespace classes are worse than useless. Michael > Thank you, > > Rocco > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Curt > Hagenlocher > Sent: Wednesday, January 30, 2008 2:13 PM > To: Discussion of IronPython > Subject: Re: [IronPython] [python] [IronPythonStudio] > NamespaceClassesandAssembly Files > > On Jan 30, 2008 10:29 AM, Pigneri, Rocco <[EMAIL PROTECTED]> wrote: > >> It sounds like instead, I need to do this: >> >> import FormOne >> import FormTwo >> >> f = FormOne.Forms.FormOne() >> f2 = FormTWo.Forms.FormTwo() >> >> Is this correct? >> > > Exactly. > > When you said "from FormOne import *", you introduced the symbol "Forms" > into the current namespace with the value of "FormOne.Forms". > When you then said "from FormTwo import *", you replaced the symbol > "Forms" with the value of "FormTwo.Forms". > > As you suggest, Python's "import" statement is not like the C# "using" > statement. A Pythonic import will introduce new symbols into the local > namespace at run time. The C# using statement is simply a directive to > the compiler to tell it which namespaces to search in for symbols that > are otherwise undefined in the local scope. It literally does not emit > any IL code that is executed at runtime. > > -- > Curt Hagenlocher > [EMAIL PROTECTED] > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ > Users mailing list > Users@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > > _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com