我试图禁用警告C0321("在单行上多个语句" - 我经常if在同一行上放置短单行结果的语句),在Pylint 0.21.1中(如果重要的话:到0.20. 1,常见的0.50.3,Python 2.6.6(r266:84292,2010年9月15日,16:22:56)).
我已经尝试添加disable=C0321Pylint配置文件,但Pylint仍坚持报告它.该行的变化(如disable=0321或disable=C321)被标记为错误,因此Pylint 确实正确识别该选项,它只是忽略它.
这是一个Pylint错误,还是我做错了什么?有没有办法解决?我真的想摆脱一些噪音.
当"解构"元组时,我可以_用来表示我不感兴趣的元组元素,例如
>>> a,_,_ = (1,2,3)
>>> a
1
Run Code Online (Sandbox Code Playgroud)
使用Python 2.x,如何用函数参数表达相同的内容?我试图使用下划线:
>>> def f(a,_,_): return a
...
File "<stdin>", line 1
SyntaxError: duplicate argument '_' in function definition
Run Code Online (Sandbox Code Playgroud)
我也试图完全省略这个论点:
>>> def f(a,,): return a
File "<stdin>", line 1
def f(a,,): return a
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
还有另一种方法可以达到同样的目的吗?
我有兴趣创建一个用于消除未使用的变量警告的宏.
此问题描述了一种通过在函数代码中编写宏来抑制未使用的参数警告的方法:
但是我对可以在函数签名中使用的宏感兴趣:
void callback(int UNUSED(some_useless_stuff)) {}
这就是我用谷歌挖出来的(来源)
#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) /*@unused@*/ x
#elif defined(__cplusplus)
# define UNUSED(x)
#else
# define UNUSED(x) x
#endif
Run Code Online (Sandbox Code Playgroud)
这可以进一步扩展到其他编译器吗?
编辑:对于那些无法理解标记如何工作的人:我想要一个C和C++的解决方案.这就是为什么这个问题被标记为C和C++的原因,这就是为什么只有C++的解决方案是不可接受的.
当函数被调用时,*args是一个元组,所以我必须先将每个参数附加到列表中.然后我通过将它们的值映射到float并使用sum()函数来求和它们.
这段代码没有任何错误,但我收到一条警告,说"未使用的变量i".
def function(*args):
x = []
y = 0
for i in range(len(args)):
x.append(args[y])
y += 1
x = list(map(float, x))
return sum(x)
Run Code Online (Sandbox Code Playgroud)
有没有办法以其他方式执行此操作,不使用"for i"循环并且更有效?
python ×3
c ×1
c++ ×1
indexing ×1
list ×1
macros ×1
pylint ×1
python-2.x ×1
python-3.x ×1
warnings ×1