|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class ProxyMetaclass(type):
def __new__(cls,name,bases,attrs):
attrs['CrawlFunc']=[]
for k,v in attrs.items():
if 'crawl_' in k:
attrs['CrawlFunc'].append(v)
return type.__new__(cls,name,bases,attrs)
class ProxyGetter(object,metaclass=ProxyMetaclass):
def test(self):
for func in self.CrawlFunc:
self.func()
def crawl_360(self):
print("360 成功")
def crawl_baidu(self):
print("百度 成功")
P=ProxyGetter()
P.test()
这段代码定义了一个元类抽取了子类的爬取函数,又把属性attrs的作为类对象ProxyGetter的属性返回给子类,但是调用ProxyGetter实例的test方法运行 提示报错,该对象没有这个属性
有没有资深鱼鱼研究指点一下。func(self)是可以运行成功的,但是为啥self.func运行不了。。。。。
你这样直接加括号能用吗?
你在for的时候,变量名叫func
引用的时候加括号就行了吗??
肯定不行啊
|
|