我有一个包装函数,它将通用解析函数的结果放入队列
@font-face {
font-family: 'lovelyFont';
src: url(../'fonts/lovely_font.eot');
src:
local('lovelyFont'),
local('lovelyFont'),
url('fonts/lovelyFont.otf')
format('opentype');
}
div { font-family: 'lovelyFont', sans-serif; }
作为参数传递的解析函数是使用
从不同的模块导入的def parse_threaded(parsefunction, response_q, parsed_q, stop_event):
while not (stop_event.is_set() and response_q.empty()):
if response_q.qsize() > 0:
response = response_q.get()
parsed = parsefunction(response)
response_q.task_done()
if parsed:
parsed_q.put(parsed)
稍后可以使用以下代码
传递这些解析函数import parser
正如您所看到的,我将parse函数(parse_beer)作为参数传递,但是这仅适用于使用Python 3.5的Windows,在Linux上使用相同的Python版本我需要执行以下代码:
beer_parse_worker = threading.Thread(target=parse_threaded, args=(parse_beer, beer_response_q, beer_q,stop_beer_parse_worker))
beer_parse_worker.start()
所以在Linux中我需要引用具有完全限定名称的函数,所以 parser.parse_beer ,在Windows中它需要只是 parse_beer
任何人都知道为什么会这样? 感谢