,我从深入Python这样的代码:深入Python输出错误
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters.
Returns string."""
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
print buildConnectionString(myParams)
书中说,它的输出应该是:
server=mpilgrim;uid=sa;database=master;pwd=secret
但是当我运行它,它在问世反向:
pwd=secret;database=master;uid=sa;server=mpilgrim
任何想法为什么?
对这里的风格有2条评论。 1-用于续行的反斜杠是不必要的。 2-列表理解可以简单地通过删除方括号变成一个生成器。 (例如'';'。join(“%s =%s”%(k,v)for k,,in params.items())' – mgilson 2012-07-30 13:46:13
另外,PEP8主张强调分隔的函数名称,而不是骆驼大小写('build_connection_string '和'my_params',而不是'buildConnectionString'和'myParams')。没有必要,但是在Python中工作时,坚持使用PEP8通常会让生活变得更轻松。 – 2012-07-30 13:49:26
@ sr2222 - PEP8 – mgilson 2012-07-30 13:50:06