Skip to main content
 首页 » 编程设计

python之抑制 PyDev 中无法访问的错误

2025年05月04日11thcjp

我有一些来 self 正在学习的类(class)的 Python 代码,并且在一些测试特定功能支持的文件中看到错误,如果这些功能不存在,我将不会尝试使用它们。就我而言,我没有可用的功能,因此不应执行条件后的代码。

如果实际到达代码,这些部分不应显示为运行时错误。

例如:

def __call__(self, *args): 
    if not 'SIGALRM' in dir(signal): 
        return self.function(*args) 
    old = signal.signal(signal.SIGALRM, self.handle_timeout) 
    signal.alarm(self.timeout) 
    try: 
        result = self.function(*args) 
    finally: 
        signal.signal(signal.SIGALRM, old) 
    signal.alarm(0) 
    return result 

我得到 Undefined variable from import: SIGALRM, Undefined variable from import: alarm 等正文中的错误,但如果 该方法会返回不支持 SIGALRM。

有没有办法抑制这些部分中的错误?

请您参考如下方法:

它不是很漂亮,但是您可以通过在以下位置设置首选项来抑制所有 undefined variable (和其他)错误:

Preferences -> PyDev -> Editor -> Code Analysis -> Undefined -> Undefined Variable From Import -> Ignore

或者,在每行的末尾添加注释,例如:

#@UnresolvedImport

#@UnusedVariable

您可以使用自动完成测试其他一些应该不言自明的内容。

以下是如何有选择地抑制问题代码中的错误:

def __call__(self, *args): 
    if not 'SIGALRM' in dir(signal): 
        return self.function(*args) 
    old = signal.signal(signal.SIGALRM, self.handle_timeout) #@UndefinedVariable 
    signal.alarm(self.timeout) #@UndefinedVariable 
    try: 
        result = self.function(*args) 
    finally: 
        signal.signal(signal.SIGALRM, old) #@UndefinedVariable 
    signal.alarm(0) #@UndefinedVariable 
    return result