[Tutor] UNSUBSCRIPTABLE?

Brett Wilkins lupin at orcon.net.nz
Mon Mar 9 00:13:11 CET 2009


Given that board is a function then I believe that it is likely you're 
either (a) doing something wrong beforehand, or (b) if board is a 
function that generates the Tic Tac Toe board, then the syntax you more 
likely need is board()[number] , but I can't be completely certain.

when I say doing something wrong beforehand, I'm thinking you might be 
accidentally giving the funtion a new name, instead of  assigning it's 
return value to a variable,
like so:

newname = functionname   //see here, no brackets on the end of the 
function, this basically tells python that newname is also functionname.
variable = functionReturningValue()   //and here, the function's return 
value is obviously being assigned to the variable

Disclaimer: My naming scheme sucks, I know this :)

Cheers
--Brett

John Fouhy wrote:
> 2009/3/9 WM. <wferguson1 at socal.rr.com>:
>   
>>  File "C:\Python26\TicTacToeD.py", line 68, in DisplayBoard
>>    print "\n\t", board[1], "|", board[2], "|", board[3]
>> TypeError: 'function' object is unsubscriptable
>>
>> I am fooling around with Dawson's "...for the Absolute Beginner". The
>> tic-tac-toe program will not run for me. I'm guessing a typi somewhere, but
>> cannot find it.
>>     
>
> "subscript" means "a thing in square brackets after a name".  You've
> got three subscripts in that line: board[1], board[2], and board[3].
>
> The error means that you're trying to use square brackets after
> something that doesn't support them.  It's telling you that 'board' is
> a function (as opposed to a list or a dict, for example) and functions
> don't support [].
>
> Possibly you're meant to call board:
>
>     print "\n\t", board(1), "|", board(2), "|", board(3)
>
> Or, alternatively, you may have assigned to it by mistake somewhere.
>
>   


More information about the Tutor mailing list