当我尝试更改默认滚动条属性时,我发现重写回调函数scroll()或onscroll事件不方便,相反,我应该为"onwheel"事件重写一个回调函数.
那么onwheel和之间的区别是onscroll什么呢?我认为onwheel浏览器的默认处理程序会自动触发onscroll移动滚动条的功能,这就是为什么preventDefault在onwheel回调中会阻止滚动条移动的原因.我对吗?谁有更好,更具体的解释?
我正在编写一个爬虫来获取html文件的某些部分.但我无法弄清楚如何使用re.findall().
这是一个例子,当我想在文件中找到所有...部分时,我可能会写这样的东西:
re.findall("<div>.*\</div>", result_page)
Run Code Online (Sandbox Code Playgroud)
如果result_page是一个字符串"<div> </div> <div> </div>",结果将是
['<div> </div> <div> </div>']
Run Code Online (Sandbox Code Playgroud)
只有整个字符串.这不是我想要的,我期待两个div分开.我该怎么办?
我正在编写一个小程序,它有一个心跳过程和一个回声过程.我用多处理库实现了这个,但它似乎不起作用.
from multiprocessing import Process
import os
import time
def ticking():
while True:
time.sleep(1)
print 'ticking'
def echo():
while True:
a = raw_input('please type something')
print 'echo: ' + a
if __name__ == '__main__':
p = Process(target=ticking, args=())
p.start()
p.join()
p = Process(target=echo, args=())
p.start()
p.join()
Run Code Online (Sandbox Code Playgroud) 我正在尝试动态初始化队列.这是我的功能.
typedef struct{
int size;
int max_size;
short * eles;
} queue;
void dump_queue(queue *q)
{
//print a bunch of information
}
void init_queue(queue *q, int max_size)
{
q = (queue)malloc(sizeof(queue));
q->size = 0;
q->max_size = max_size;
q->eles = (short *)malloc(max_size * sizeof(short));
int i;
for(i = 0; i < max_size; i++)
q->eles[i] = -1;
dump_queue(q);
}
Run Code Online (Sandbox Code Playgroud)
task_queue是一个全局变量.例程的结构如下:(不是确切的代码)
//globally defined here but not initialized
queue * task_queue;
void init_scheduler()
{
init_queue(task_queue, 32);
dump_queue(task_queue);
//other staff
}
Run Code Online (Sandbox Code Playgroud)
注意有两个dump_queue,一个是init_queue(),另一个是init_queue之后.由于task_queue是malloced,我希望dump_queue的两次调用应该给出相同的结果.但第二个实际上报告了一个SIG_FAULT.
在我检查之后,在dump_queue的第二次调用中,task_queue实际上是NULL.这是为什么?