func = 'somefunc'
self.func
假设有一个类foo
,它有个函数somefunc
。func是个字符串变量,它等于'somefunc'。怎么通过func这个变量调用foo.somefunc()
呢?foo.((func))???
我的代码
urls = {'Youdaili':'http://www.youdaili.cn/Daili/http/'}
for proxy, url in self.urls.iteritems():
yield Request(url = url, callback = self.'parse' + proxy)
使用getattr函数可以通过字符串获取到一个对象的方法。
虽然没看明白,我大概觉得你要覆盖getattribute 方法就行, 参考 http://stackoverflow.com/questions/371753/python-using-getattribute-method
x-y problem
这问题也太不明确了吧亲
问题不明确,按我理解楼主的问题是:
通过字符串来找到类的一个方法,然后调用它,是这样么?
那样__getattribute__(name)
方法就可以了呀,或者用getattr(obj, name[, default])
函数
===
刚回答完楼主就修改了问题,那样就明确了。
如我上面所述,解决的办法就是用getattr
和__getattribute__
func = 'somefunc'
somefunc = getattr(foo, func) # or foo.__getattribute__(func)
somefunc() # Call it