本文介绍了在线程中运行类方法(python)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在学习Python和类,我有一个基本问题,但没有找到任何答案.假设我有这个虚拟课程
I'm currently learning Python and Classes and I have a basic question, but I didn't find any answer to it. Let's say I have this dummy class
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我想同时运行resolve_domain和generate_website_thumbnail,当线程完成时,我想打印IP和缩略图.
I want to run simultaneously resolve_domain and generate_website_thumbnail and when the threads are finished I want to print the IP and the thumbnail.
编辑:我知道我应该使用线程,也许是这样的
I know I should use threads, maybe something like this
r = DomainOperations('google') t1 = threading.Thread(target=r.resolve_domain) t1.start() t2 = threading.Thread(target=r.generate_website_thumbnail) t2.start()但是我应该在课堂之外使用它们吗?我应该编写另一个类来处理线程吗?
But should I use them outside the Class? Should I write another Class to handle Threads?
正确的方法是什么?
推荐答案如果从类中调用它们,则非常简单:
If you call them from the class, it is as simple as:
import threading class DomainOperations: def __init__(self): self.domain_ip = '' self.website_thumbnail = '' def resolve_domain(self): self.domain_ip = 'foo' def generate_website_thumbnail(self): self.website_thumbnail= 'bar' def run(self): t1 = threading.Thread(target=self.resolve_domain) t2 = threading.Thread(target=self.generate_website_thumbnail) t1.start() t2.start() t1.join() t2.join() print(self.domain_ip, self.website_thumbnail) if __name__ == '__main__': d = DomainOperations() d.run()更多推荐
在线程中运行类方法(python)
发布评论