questo è il mio server http:BaseHTTPRequestHandler con campione personalizzato
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
class test:
def show(self):
return "aaaa"
class http_server:
def __init__(self, t1):
self.t1 = t1
server = HTTPServer(('', 8080), myHandler)
server.serve_forever()
class myHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.wfile.write(self.t1.show()) #Doesnt work
return
class main:
def __init__(self):
self.t1 = test()
self.server = http_server(self.t1)
if __name__ == '__main__':
m = main()
ho bisogno di acces esempio t1 all'interno di myHander.
C'è un modo come farlo?
Grazie!
Ora questo ha salvato la vita! Molto più semplice (almeno per ora) per istanziare la classe senza sovrascrivere il metodo __init__ e quindi impostare 'handler.t1 = value'. – George
Non avrei mai pensato di utilizzare un membro di classe statico. Invece ho perso più di un'ora cercando come accedere all'istanza che 'HTTPServer' crea internamente (in base alla classe che hai passato su di esso come gestore). Inutile dire che è esploso in un tipico problema di gallina e uovo - il costruttore del gestore ha bisogno dell'istanza del server, che ovviamente non è presente nel momento in cui il gestore viene creato al di fuori della classe del server. XD – rbaleksandar