当我在函数调用中使用星号时,Pylint会抱怨
def f(*args):
# Some code
f(1, 2, 3,)
pylint给出的输出:
pylint failed:
Used * or ** magic (star-args)
是否有在函数定义中使用*
的替代方法,这会产生相同的结果?
我需要通过pylint验证代码,因为它是一个学校作业。我不认为这是一个合法的警告,但我必须这样做,因为pylint说。
答案 0 :(得分:3)
Pylint 高度可配置,在涉及某些事情时可能相当麻烦。即使star-args (W0142)
rule description显示它只是一个警告:
使用*或** magic 。在使用
*args
或**kwargs
调度函数或方法来调度参数时使用。这不会提高可读性,应谨慎使用。
只需禁用您确定使用*args
的函数的警告是正确的事情,而不是尝试解决PyLint:
def f(*args): # pylint: disable=star-args
# Some code
您唯一的选择是接受将您视为序列的一个参数,然后传入元组或列表:
def f(arg):
# Some code
f((1, 2, 3))
但我严重怀疑您使用# pylint disable=...
评论会失败。