Python方法将参数列表转换为字符串

时间:2016-09-14 04:52:08

标签: python python-2.7

我继承了一些Python代码,它从传递给__init__的字符串参数构造一个字符串:

self.full_tag = prefix + number + point + suffix

也许我只是过度思考它,但这是连接参数的最佳方法吗?我知道可以这样做:

self.full_tag = "".join([prefix, number, point, suffix])

或者只是使用字符串格式功能:

self.full_tag = '{}{}{}{}'.format(prefix, number, point, suffix)

Python的做法是什么?

2 个答案:

答案 0 :(得分:3)

Pythonic 的方式是关注The Zen of Python,这个案子有几点要说:

  • 美丽胜过丑陋。

  • 简单比复杂更好。

  • 可读性计数。

再加上DonaldKnuth的名言:

  

我们应该忘记效率低,大约97%的时间说:   过早优化是万恶之源。

考虑到这些,您最好的选择是:

self.full_tag = prefix + number + point + suffix

虽然,如果数字确实是一个数字而点数确实是一个点,那么这更明确:

self.full_tag = "%s%d.%s" % (prefix, number, suffix)
  • 明确胜于隐性。

答案 1 :(得分:2)

文档建议使用join以获得比+更好的性能:

  

6. ... For performance sensitive code, it is preferable to use the str.join() method which assures consistent linear concatenation performance across versions and implementations.

如果表现不是太重要,那就更多的是品味。

就我个人而言,我发现"".joinformat版本中的所有大括号更清晰,更易读。