将各种数量的参数转换为字符串?
Convert various number of arguments into a string?
我有以下从可变大小参数创建名称的函数:
def create_name(*argv):
"""Create a name from passed arguments."""
return f"%s" % "_".join(str(arg) for arg in argv)
当 运行 pylint 时,我收到以下警告。
W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
只是想知道是否可以进行任何改进来解决此警告。
你的表情f"%s" % "_".join(str(arg) for arg in argv)
分解成这样:
f"%s"
使用 %
运算符 格式化为 "_".join(str(arg) for arg in argv)
f"%s"
又是一个内插字符串,但由于其中没有 {}
,所以没有对其进行任何操作,因此 "%s"
将实现相同的效果
- 使用
%
将 "%s"
格式化为另一个字符串只会让您再次获得相同的字符串,因此整个表达式可能只是 "_".join(str(arg) for arg in argv)
所以,这些都有效:
return "_".join(str(arg) for arg in argv)
return "%s" % "_".join(str(arg) for arg in argv)
return f'{"_".join(str(arg) for arg in argv)}'
但没有理由不使用第一个,其余的只是增加了复杂性而没有功能。
具体来说,您收到该警告是因为 Python 中的内插字符串(或 'f-strings')期望替换 {}
中的表达式,但您的 f 字符串没有任何,所以 pylint 告诉你你可以删除 f
。因为您的 f 字符串“没有任何内插变量”。
我有以下从可变大小参数创建名称的函数:
def create_name(*argv):
"""Create a name from passed arguments."""
return f"%s" % "_".join(str(arg) for arg in argv)
当 运行 pylint 时,我收到以下警告。
W1309: Using an f-string that does not have any interpolated variables (f-string-without-interpolation)
只是想知道是否可以进行任何改进来解决此警告。
你的表情f"%s" % "_".join(str(arg) for arg in argv)
分解成这样:
f"%s"
使用%
运算符 格式化为 f"%s"
又是一个内插字符串,但由于其中没有{}
,所以没有对其进行任何操作,因此"%s"
将实现相同的效果- 使用
%
将"%s"
格式化为另一个字符串只会让您再次获得相同的字符串,因此整个表达式可能只是"_".join(str(arg) for arg in argv)
"_".join(str(arg) for arg in argv)
所以,这些都有效:
return "_".join(str(arg) for arg in argv)
return "%s" % "_".join(str(arg) for arg in argv)
return f'{"_".join(str(arg) for arg in argv)}'
但没有理由不使用第一个,其余的只是增加了复杂性而没有功能。
具体来说,您收到该警告是因为 Python 中的内插字符串(或 'f-strings')期望替换 {}
中的表达式,但您的 f 字符串没有任何,所以 pylint 告诉你你可以删除 f
。因为您的 f 字符串“没有任何内插变量”。