2012-04-04 2 views
1

ich diesen Code haben, und ich konnte es nicht laufen, weil ich diese Fehlermeldung erhalten: „Typeerror:‚classObj‘Objekt subscriptable nicht“ und hier ist mein Code:Python „classObj“ Fehler

import cgi 
import customerlib 

form=cgi.FieldStorage 

history = customerlib.find(form["f_name"].value,form["l_name"].value) 


print "Content-type: text/html" 
print 
print """<html> 
    <head> 
    <title>Purchase history</title> 
    </head> 
    <body> 
    <h1>Purchase History</h1>""" 

print "<p>you have a purchase history of:" 
for i in history: "</p>" 
    print""" <body> 
</html>""" 

Ich habe die Datei clientlib neben dieser Datei. Irgendeine Idee, wie man es repariert?

Antwort

6
form=cgi.FieldStorage 

FieldStorage ist eine Klasse, kein Objekt. Sie müssen es instanziiert ein FieldStorage Objekt zu erstellen:

form=cgi.FieldStorage() 

Es ist erroring auf form["f_name"] weil Form zur Zeit ist ein Alias ​​für die Klasse von FieldStorage, nicht ein Objekt vom Typ FieldStorage. Indem Sie es instanziieren, tun Sie, was Sie denken, dass es tun sollte.

Weitere Informationen zur Verwendung des CGI-Moduls finden Sie unter cgi module documentation.