如何动态获取对象的方法,并使用协程同步执行

笔记

# 创建类
class Crawl(object):
    def __init__(self):
        pass

    def proxy__a(self):
        pass

    def proxy__b(self):
        pass

    def proxy__c(self):
        pass

# 创建对象
c = Crawl()

# 动态获取对象所有方法
jobs = []
for attr in dir(c):
    if attr.startswith("proxy__"):
        if attr not in ["proxy__c"]:
            obj = getattr(c, attr, None)
            # 所有proxy__开头的方法都加入jobs列表
            jobs.append(gevent.spawn(obj))

# 使用协程执行jobs列表中的函数,并返回结果
results = gevent.joinall(jobs)

# 遍历所有结果真实的返回值
for result in results:
    for value in result.value:
        print(value)

更多文章可以访问我的个人博客:码练

你可能感兴趣的:(python)