[IronPython] How to reference List objects?

Larry Danberger larry.danberger at Nubium.com
Tue Jun 9 03:06:55 CEST 2009

Hi All,
I switched from a list to a dictionary of dictionaries, and it works as I
needed it.  Don't know if that's a performance hit or not, but hey it works.
..and yes I was retyping and had two typos (good eye!), should have been
TypeError: 'List[book]' object is unsubscriptable   not  'List[books]'
object is unsubscriptable, and my code declared the book class methods as

Thank you all for your help.  I'm sure this won't be my last question!


-----Original Message-----
From: users-bounces at lists.ironpython.com
[mailto:users-bounces at lists.ironpython.com] On Behalf Of Curt Hagenlocher
Sent: Monday, June 08, 2009 3:02 PM
To: Discussion of IronPython
Subject: Re: [IronPython] How to reference List objects?

It indicates a nested class:

class PythonEngine {
    class book {

You can definitely interact with BCL generic List classes in this fashion:

>>> from System.Collections.Generic import List a = List[str]()
>>> a.Add('abc')
>>> a.Add('def')
>>> a
List[str](['abc', 'def'])
>>> a[0]
>>> ^Z

There are a number of subtle problems with the output text in the original
report; was this typed in or copy-and-pasted?

On Mon, Jun 8, 2009 at 1:55 PM, Justin Regele <jregele23 at gmail.com> wrote:

	Ah, I see. Would a python list then need to be called the way he is
doing it, though. Is this a silverlight issue? I am wondering if he can just
make a python list out of his Book C# class rather than exporting them as a
list. I am sure there would be some performance issues, so maybe that is the
reason for this way of doing it.
	Wondering about this error:

	What does the '+' indicate? 

	On Mon, Jun 8, 2009 at 1:32 PM, Michael Foord
<fuzzyman at voidspace.org.uk> wrote:

		Justin Regele wrote:

			Type Errors where the object is unscriptable means
that it does not have any indices intialized.
			Use the python interactive interpreter to play
around with list methods, and see how they work correctly. This is one of
pythons best weapons. if you don't know what objects are in a module, or
what attributes/methods are in a class type in dir(<module or classname>)
and it will spell it out for you.
			you do need to initialize a list before access,
			so you CANT do this
			x = []
			x[0] = 'something'
			you would have to do this(making a list of 10 None
			x = [None] * 10
			x[0] = 'something'
			OR use the append() method to make the list more
like a dynamic array
			x = []
			this is the python way of doing it, but i'm not sure
why you need a .NET list array.

		He is creating the list from C# and making it available to
Python code. As far as I can tell he is doing it right, although maybe the
fact that his C# book class is private is interfering with it?

			On Mon, Jun 8, 2009 at 11:27 AM, Larry Danberger
<larry.danberger at nubium.com <mailto:larry.danberger at nubium.com>> wrote:
			   Hi all,
			   I'm new to Python and IronPython, sorry if this
is obvious.  I
			   haven't found
			   answer searching web or in IronPython In Action
			   I have embedded IronPython into silverlight app
for scripting,
			   which is
			   working (wow! Btw).  I use scope.SetVariable for
			   which works as
			   However when passing in a list I am unable to
access the objects
			   within a
			   For the example below when trying
			   x = books[0].Name
			   I get
			   TypeError: 'List[books]' object is
			   If I do
			   x = books
			   I get back
			   If I do
			   I get back 4.
			   How do I access them individually (by name etc.)?
			   My code looks something like this:
			   Class book
			     int ID { get; set; }
			     String Name { get; set; }
			     String Author { get; set; }
			     String Description { get; set; }
			   List<book> _books = new List<book>();
			   _books.Add(new book { ID=1, Name="book1",
			   _books.Add(new book { ID=2, Name="book2",
			   _books.Add(new book { ID=3, Name="book3",
			   _books.Add(new book { ID=4, Name="book4",
			   _scope.SetVariable("books", _books);
			   Any help appreciated, thanks!
			   Users mailing list
			   Users at lists.ironpython.com
<mailto:Users at lists.ironpython.com>


			Users mailing list
			Users at lists.ironpython.com


		Users mailing list
		Users at lists.ironpython.com

	Users mailing list
	Users at lists.ironpython.com

More information about the Ironpython-users mailing list