[IronPython] List<Python Class>
Dino Viehland
dinov at exchange.microsoft.com
Sat May 3 08:35:12 CEST 2008
"List<IronPython.NewTypes.System.Object_1$2> isn't even type-safe for Python classes because IronPython maintains a cache of generated types and will reuse a type it has previously generated for any new class you define that's compatible with a previously-defined class."
This has always been a lingering thought in the back of my head - I've been wondering how long it'd be until it came up.
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Curt Hagenlocher
Sent: Friday, May 02, 2008 10:17 PM
To: Discussion of IronPython
Subject: Re: [IronPython] List<Python Class>
Well in the example I gave, the type of class foo would genrally be something like IronPython.NewTypes.System.Object_1$2. There's not going to be any "native" CLR code to which you can pass a List<IronPython.NewTypes.System.Object_1$2>, and if you're passing the data to other Python code, you may as well do it as a Python list or tuple. It's the "dynamic" thing to do :).
List<IronPython.NewTypes.System.Object_1$2> isn't even type-safe for Python classes because IronPython maintains a cache of generated types and will reuse a type it has previously generated for any new class you define that's compatible with a previously-defined class.
On Fri, May 2, 2008 at 9:58 PM, Matthew Barnard <m.stephen.barnard at gmail.com<mailto:m.stephen.barnard at gmail.com>> wrote:
Thanks Curt, in C# I use generics (list & dict) containing class instances quite often. Is there a caveat to the dynamic typing that I'm missing?
On Fri, May 2, 2008 at 7:52 PM, Curt Hagenlocher <curt at hagenlocher.org<mailto:curt at hagenlocher.org>> wrote:
This will get you a CLR type directly from your class object:
class foo(object):
pass
theType = clr.GetClrType(foo)
What use do you have for creating a generic with the resulting (dynamically-generated) type?
On Fri, May 2, 2008 at 6:30 PM, Matthew Barnard <m.stephen.barnard at gmail.com<mailto:m.stephen.barnard at gmail.com>> wrote:
Is the following the only way to create a generic containing a python class?
from System.Collections.Generic import List
from System import Type
class Foo:
>>class stuff<<
l = List[Type.GetType(Foo())]()
I assume this is the nature of dynamic typing, but is there a way to get the type from the classobj, and not an instance?
_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
--
___________________________
Matthew Barnard
602 540 0652
_______________________________________________
Users mailing list
Users at lists.ironpython.com<mailto:Users at lists.ironpython.com>
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080502/5e6c0e58/attachment.html>
More information about the Ironpython-users
mailing list