to mój serwer http:BaseHTTPRequestHandler z niestandardowym przykład
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()
muszę acces instancji t1 wewnątrz myHander.
Czy jest jakikolwiek sposób to zrobić?
Dzięki!
teraz uratował mi życie! Znacznie prostsze (przynajmniej na razie) do utworzenia klasy bez przesłonięcia metody __init__, a następnie ustawienia 'handler.t1 = value'. – George
Nigdy bym nie pomyślał, aby użyć statycznego członka klasy. Zamiast tego zmarnowałem ponad godzinę, szukając dostępu do instancji, którą 'HTTPServer' tworzy wewnętrznie (w oparciu o klasę, którą przekazałeś na nią jako program obsługi). Nie trzeba dodawać, że eksplodowało to w typowy problem z kurczakiem i jajkiem - konstruktor handler'a potrzebuje instancji serwera, która oczywiście nie jest obecna w momencie, gdy przewodnik jest tworzony poza klasą serwera. XD – rbaleksandar