Attualmente sto imparando Python e Classes e ho una domanda di base, ma non ho trovato alcuna risposta. Diciamo che ho questa classe fittiziaEsegui i metodi Class nei thread (python)
class DomainOperations:
def __init__(self, domain):
self.domain = domain
self.domain_ip = ''
self.website_thumbnail = ''
def resolve_domain(self):
#resolve domain to ipv4 and save to self.domain_ip
def generate_website_thumbnail(self):
#generate website thumbnail and save the url to self.website_thumbnail
Voglio correre contemporaneamente resolve_domain e generate_website_thumbnail e quando i fili sono finiti voglio stampare l'IP e la miniatura.
EDIT: So che dovrei usare le discussioni, forse qualcosa di simile
r = DomainOperations('google.com')
t1 = threading.Thread(target=r.resolve_domain)
t1.start()
t2 = threading.Thread(target=r.generate_website_thumbnail)
t2.start()
Ma non li ho utilizzare al di fuori della classe? Devo scrivere un'altra classe per gestire i thread?
Che cos'è il modo per farlo?
-1: è possibile eseguire un thread all'interno di una classe, ma ha detto thread non erediterà lo spazio dei nomi 'sé'. Quindi in pratica no non puoi. Kinda informazioni importanti –
@jasondancks Mi dispiace, ma ti sbagli. Guarda il seguente esempio: http://pastebin.com/8JWzReCW. 'self.resolve_domain' e' self.generate_website_thumbnail' useranno gli attributi dell'oggetto poiché 'self' è il primo argomento di entrambe le chiamate. –
eh. Oggi non ho potuto farlo funzionare nel mio codice, quindi ho dovuto prendere il mio metodo fuori dalla classe e passare l'oggetto come parametro. Chiedo scusa. –