我继承了一些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的做法是什么?
答案 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
以获得比+
更好的性能:
如果表现不是太重要,那就更多的是品味。
就我个人而言,我发现"".join
比format
版本中的所有大括号更清晰,更易读。