小编Eli*_*sky的帖子

Python的机械化模块出错

我正在使用该mechanize模块从Python执行一些Web查询.我希望我的程序具有错误恢复能力,并优雅地处理各种错误(错误的URL,403/404响应).但是,我在mechanize的文档中找不到它为各种错误抛出的错误/异常.

我只是称之为:

    self.browser = mechanize.Browser()
    self.browser.addheaders = [('User-agent', browser_header)]

    self.browser.open(query_url)
    self.result_page = self.browser.response().read()
Run Code Online (Sandbox Code Playgroud)

我怎么知道可以抛出哪些错误/异常并处理它们?

python exception mechanize urllib2

6
推荐指数
1
解决办法
6252
查看次数

理解C函数在Windows上使用__cdecl调用prolog

在调试模式下使用MSVC2008编译这个简单的函数:

int __cdecl sum(int a, int b)
{
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下反汇编列表:

int __cdecl sum(int a, int b)
{
004113B0  push        ebp  
004113B1  mov         ebp,esp 
004113B3  sub         esp,0C0h 
004113B9  push        ebx  
004113BA  push        esi  
004113BB  push        edi  
004113BC  lea         edi,[ebp-0C0h] 
004113C2  mov         ecx,30h 
004113C7  mov         eax,0CCCCCCCCh 
004113CC  rep stos    dword ptr es:[edi] 
    return a + b;
004113CE  mov         eax,dword ptr [a] 
004113D1  add         eax,dword ptr [b] 
}
004113D4  pop         edi  
004113D5  pop         esi  
004113D6  pop         ebx  
004113D7  mov …
Run Code Online (Sandbox Code Playgroud)

c windows assembly

6
推荐指数
1
解决办法
2306
查看次数

从文件中读取并存储在数组中

我编写了以下程序,从文件中逐行读取并将其存储在单词数组中.输出应该是数组中的两个随机字.但令人惊讶的是,单词数组只包含重复读取的最后一个单词.对出了什么问题的任何帮助?

int main(){
 int i = 0;
 char line_buffer[BUFSIZ];
 char* words[20];
 FILE *fp = fopen("input.txt", "r");
  while (fgets(line_buffer, sizeof(line_buffer), fp)) {
  //printf("%s", line_buffer); 
  words[i] = line_buffer;
  i = i + 1;
 } 
 printf("%d", i);
 int j = rand()%8;
    int k = (j+1)%8;
 printf("%s %s", words[j], words[k]); 
 fclose(fp);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

input.txt中

nematode knowledge
empty bottle
nevertheless
claustrophobia
metamorphosis
acknowledgement
impossibility
never gave up
Run Code Online (Sandbox Code Playgroud)

c random

6
推荐指数
1
解决办法
4万
查看次数

继承和命名空间

我正在尝试我的第一个有用的面向对象程序,其中包含一些命名空间 我有一个基类B,它位于名称空间NS中.如果我尝试从这个基类继承以获得继承工作,我应该在类decleration中使用NS :: B,如下所示,这是真的吗?或者是否有更广泛接受的继承语法?

namespace NS
{
    class D: public NS::B{
    ...
    };
}
Run Code Online (Sandbox Code Playgroud)

最好的,Umut

c++ namespaces

6
推荐指数
2
解决办法
9981
查看次数

gcc参数寄存器溢出x86-64

我正在尝试使用x86-64程序集.编译了这个虚函数:

long myfunc(long a, long b, long c, long d,
            long e, long f, long g, long h)
{
    long xx = a * b * c * d * e * f * g * h;
    long yy = a + b + c + d + e + f + g + h;
    long zz = utilfunc(xx, yy, xx % yy);
    return zz + 20;
}
Run Code Online (Sandbox Code Playgroud)

随着gcc -O0 -g我惊讶地发现,在函数的程序集的开头如下:

0000000000400520 <myfunc>:
  400520:       55                      push   rbp
  400521: …
Run Code Online (Sandbox Code Playgroud)

c assembly gcc x86-64 cpu-registers

6
推荐指数
2
解决办法
1551
查看次数

如何在LLVM模块中插入函数

我正在写一个LLVM传递,我通过调用克隆一些函数llvm::CloneFunction.现在我也想在模块中插入这些功能.我怎样才能做到这一点?

c++ llvm

6
推荐指数
1
解决办法
2741
查看次数

有效地找到RegExp搜索中匹配的组

当我RegExp有许多捕获组时,我想知道哪个组进行了捕获(或者至少是第一个/最后一个这样的组,如果有多个组).如果您熟悉Python,这基本上相当于re.MatchObject.lastgroup.一些代码使它更清晰:

var re_captures = new RegExp("(\\d+)|(for)|(\\w+)", "g");
var str = " for me 20 boxes please";
var result;

while ((result = re_captures.exec(str)) !== null) {
  console.log(result[0], 'at', result.index, result.slice(1));
}
Run Code Online (Sandbox Code Playgroud)

它打印:

for at 1 [ undefined, 'for', undefined ]
me at 5 [ undefined, undefined, 'me' ]
20 at 8 [ '20', undefined, undefined ]
boxes at 11 [ undefined, undefined, 'boxes' ]
please at 17 [ undefined, undefined, 'please' ]
Run Code Online (Sandbox Code Playgroud)

result数组显示哪些组进行了捕获,但我认为无法快速找到每个给定的匹配,哪个组匹配而不迭代数组.这在以编程方式构建大型正则表达式并且迭代效率低的情况下非常有用. …

javascript regex

6
推荐指数
1
解决办法
294
查看次数

如何在PyGame中响应鼠标点击sprite?

在PyGame中让精灵响应鼠标点击的规范方法是什么?

在我的事件循环中,这里有一些简单的东西:

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        exit_game()
    [...]
    elif (  event.type == pygame.MOUSEBUTTONDOWN and
            pygame.mouse.get_pressed()[0]):
        for sprite in sprites:
            sprite.mouse_click(pygame.mouse.get_pos())
Run Code Online (Sandbox Code Playgroud)

关于它的一些问题:

  1. 这是响应鼠标点击的最佳方式吗?
  2. 如果鼠标在精灵上按下一段时间怎么办?如何从中制作单个活动?
  3. 这是通知我所有精灵点击的合理方式吗?

提前致谢

python pygame

5
推荐指数
1
解决办法
1万
查看次数

PyQt:加载“重”库时的启动屏幕

我使用的 PyQt 应用程序matplotlib首次加载需要几秒钟的时间,即使在快速机器上也是如此(第二次加载时间要短得多,因为 Windows 将 DLL 保留在内存中)。

matplotlib我想知道在加载库时显示启动屏幕是否可行。实际加载发生在哪里 - 是在from执行该行时吗?如果是这样,我怎样才能使这一行在启动屏幕期间执行,并且仍然能够在整个代码中使用该模块?

一个相关的困境是如何测试这一点 - 我可以要求 Windows 在每次执行时加载 DLL 而不是缓存它们吗?

python performance pyqt matplotlib

5
推荐指数
1
解决办法
3382
查看次数

Apple LLVM 5.0 pragma优化

Apple LLVM 5.0编译器中GCC #pragma GCC optimize("O0")或VS的等价物是什么#pragma optimize("", off)

我需要它来禁用一段代码的优化.

c++ xcode pragma xcode5

5
推荐指数
1
解决办法
2214
查看次数