我之前有过使用C ++的经验,刚刚开始使用Python。我从Dive into Python:
中读到了这段文字根据我的经验,一般的想法是,如果你想对对象执行操作,你可以在该对象上调用一个方法来执行它。
EG。如果我有一个列表对象,并且我想得到所有元素的总和,我会做类似的事情:
listObject.getSumOfAllElements()
但是,上面的书中摘录的内容对我来说有点奇怪。对我来说,这会更有意义:
return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")
即。将所有列表元素作为字符串连接,并在此处使用此参数';'
作为分隔符。
这是设计差异还是只是语法上与我的想法有点不同?
编辑:
为了完成,这本书稍后说了一遍:
答案 0 :(得分:5)
这是设计差异还是只是语法上与我的想法有点不同?
是的,我认为这是设计上的。 join
函数是有意通用的,因此它可以与任何可迭代(包括迭代器对象和生成器)一起使用。这样可以避免分别为join
,list
,tuple
等实施set
。