python - 将各种数量的参数转换为字符串?
问题描述
我有以下从可变大小参数创建名称的函数:
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-string 没有任何内容,因此 pylint 告诉您可以删除f
. 因为您的 f 字符串“没有任何插值变量”。
推荐阅读
- java - 加载 Firebase 实时数据库时的 ProgressBar
- reactjs - 无法在 useEffect 中设置状态
- c# - 如何通过 itext7 更改 pdf 链接的链接类型?
- c - 如何按升序按位值打印数字的每个数字
- powerbi - 字典中不存在给定的键 - PowerBI
- icons - 我已从 FontAwesome 4 升级到 font awesome 5,unicode 图标未在服务器中呈现
- cakephp - 如何在 cakePHP4 中禁用授权中间件?
- java - 如何在 Spring Boot 应用程序中杀死内螺纹
- javascript - 地图与异步/等待不同步
- javascript - _ga cookie 在不处于隐身模式时不会被清除/过期 - 使用 Javascript