passing lists

Steve Holden steve at holdenweb.com
Wed Mar 2 17:34:34 EST 2005


Earl Eiland wrote:
> def Match(..., Raw_packet_queue, ...):
> 	...
> 	print 'in Match, Raw_Packet_queue is', Raw_packet_queue # this returns
> 'Reader object at 0xaaa'
> 	...
> 	return [Last_Passed, Last_Dropped, Raw_packet_queue] # this causes
> 'unsubscriptable object'error message
> 
> #*************************************************
> def Main(...):
> 	Raw_packet_queue = []
> 	...
> 	Raw_packet_queue = enqueue(..., Raw_packet_queue, ...) # this works
> 	...	
> 	if Raw_packet_queue[ctr][1] == Passed_IP: Last_Passed, Last_Dropped,
                            ^^^^^^^^
                              oops!
> Raw_packet_queue = Match(..., Raw_packet_queue, ...) # the problem
> starts here
> 	...
> 
Rule one: ALWAYS include the actual traceback, rather than providing 
your interporetation of what it means (though you are then free to do 
that, too).

What makes you think it's the Match() call that's causing the problem?

I'd be willing to bet money it's the double-subscripting of 
Raw_packet_queue - if item [ctr] on the Raw_packet_queue isn't a list or 
a dict then subscripting it by [1] will give you the error message that 
you quote.

But if you had included the traceback you would have made it unnecessary 
for me to use my psychic powers :-)

regards
  Steve

> On Wed, 2005-03-02 at 14:09, Bill Mill wrote:
> 
>>Earl,
>>
>>Please post the smallest snippet of code you can which illustrates
>>your problem. No list is an unsubscriptable object, so you seem to be
>>passing something that is not a list to your function.
>>
>>As it stands, you don't give enough information to give an actual answer.
>>
>>Peace
>>Bill Mill
>>bill.mill at gmail.com
> 
> 
>>
>>On Wed, 02 Mar 2005 14:05:18 -0700, Earl Eiland <eee at nmt.edu> wrote:
>>
>>>I have a program in which I'm passing a list to functions.  When I
>>>reference an element in a function to which it is passed, I get the
>>>error message "unsubscriptable object".  When printing the list contents
>>>in that same function, I get "xxx is <Reader object at 0xyyyy>".  How do
>>>I pass a list?
>>>
>>>Earl Eiland
>>>
>>>--
>>>http://mail.python.org/mailman/listinfo/python-list
>>>
> 
> 
-- 
Meet the Python developers and your c.l.py favorites March 23-25
Come to PyCon DC 2005                      http://www.pycon.org/
Steve Holden                           http://www.holdenweb.com/



More information about the Python-list mailing list