可以不使用*魔法来格式化列表吗?
我写了一些Python代码,虽然代码能正常运行,但Pylint对星号不太满意。它一直在告诉我:
Used * or ** magic (star-args)
有没有办法不使用星号来写我的代码呢?一些信息:我正在使用lxml库;self.xml是一个对象化的XML文件。
@property
def version_string(self):
'''Return the version as a string.'''
try:
version_format = self.xml.version.get("format")
except AttributeError:
return None
version_values = (v.text for v in self.xml.version.v)
return version_format.format(*version_values)
3 个回答
4
star-args (W0142) 在pylint中已经不再存在了(至少从1.4.3版本开始)。看起来这个功能是最近才被删除的。
7
如果你不喜欢这个pylint的警告,可以把它关掉。这个警告最开始是为了提醒大家,代码里有太多的
def some_function(*args, **kwargs):
pass
会让代码变得不容易读懂和维护。
11
这个“splat”操作符没有问题。我们不知道version_format
这个函数具体是干什么的,所以不能确定你是否可以传入一个可迭代的对象,或者直接对这个函数进行迭代。不过老实说,没必要这样做。