当前位置:  开发笔记 > 编程语言 > 正文

Python字符串格式:%vs连接

如何解决《Python字符串格式:%vs连接》经验,为你挑选了2个好方法。

我正在开发一个应用程序,在其中我执行一些请求以获取对象ID.在每一个之后,我调用一个方法(get_actor_info())将此id作为参数传递(参见下面的代码).

ACTOR_CACHE_KEY_PREFIX = 'actor_'

def get_actor_info(actor_id):
    cache_key = ACTOR_CACHE_KEY_PREFIX + str(actor_id)

正如可以注意到,我在铸造actor_idstring与前缀相连来.但是,我知道我可以通过多种其他方式(.format()或者'%s%d',例如)来实现这一点,这导致了我的问题:'%s%d'在可读性,代码约定和效率方面,它会比字符串连接更好吗?

谢谢



1> Will..:

这可能很容易成为一个基于意见的线程,但我发现格式在大多数情况下更具可读性,并且更易于维护.在不进行"精神连接"的情况下,可以更容易地查看最终字符串的外观.例如,哪些更具可读性?

errorString = "Exception occurred ({}) while executing '{}': {}".format(
    e.__class__.__name__, task.name, str(e)
)

要么:

errorString = "Exception occurred (" + e.__class__.__name__
    + ") while executing '" + task.name + "': " + str(e)

至于是否使用%.format(),我可以更客观地回答:使用.format().%是"旧式",根据Python文档,它们很快就会被删除:

由于str.format()很新,很多Python代码仍然使用%运算符.但是,由于这种旧式格式最终将从语言中删除,str.format()因此通常应该使用.

后来的文档版本已经停止提及这一点,但是,这.format()是未来的方式; 用它!

连接速度更快,但这不应该是一个问题.使您的代码可读和可维护作为第一线目标,然后优化您稍后需要优化的部分.过早优化是万恶之源;)



2> BigOther..:

在性能方面,串联效果更好。在您的示例中,连接和替换都是可读的,但是当涉及到更复杂的模板时,替换将赢得简单性和可读性。

例如,如果您有数据并希望以html格式显示,则连接将使您头痛,而替换将简单易懂。

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有