【发布时间】:2016-02-26 21:34:11
【问题描述】:
我以前有一些 C++ 经验,并且刚刚开始使用 Python。我从Dive into Python 阅读了这段文字:
根据我的经验,一般的想法是,如果您想对对象“O”执行操作,请调用该对象上的方法来执行此操作。
例如。如果我有一个列表对象,并且我想获得所有元素的总和,我会这样做:
listObject.getSumOfAllElements()
但是,上面摘录中给出的调用对我来说有点奇怪。对我来说这更有意义:
return (["%s=%s" % (k, v) for k, v in params.items()]).join(";")
即将列表的所有元素连接成一个字符串,这里使用';'这个参数作为分隔符。
这是设计上的差异还是只是在语法上与我的想法有些不同?
编辑:
为了完成,本书稍后会说:
【问题讨论】:
-
是的,它有点像“;”是您在此处执行方法的对象。
-
你的意思是问为什么是
string.join(list)而不是list.join(string)? -
@BhargavRao 是的,没错!
-
啊谢谢@BhargavRao 您发布的页面上已经有详细的解释。我应该提出这个关闭还是直接删除它?
-
@AmitTomar 不。保持原状。其他人将从中受益。 thefourtheye 的回答很好。如果你也这么认为,请接受它。
标签: python oop language-design