def buildConnectionString(params):
"""Build a connection string from a dictionary
Returns string.
""" #文档字符串
return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) #格式化字符串 iterms函数返回所有元祖元素的列表
if __name__ == "__main__": #程序自调用
myParams = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret"
}
print buildConnectionString(myParams) #调用函数
def info(object, spacing=10, collapse=1): #spacing=10 指定空白间隔 collapse=1 默认不换行 0为换行
"""Print methods and doc strings.
Takes module, class, list, dictionary, or string."""
methodList = [e for e in dir(object) if callable(getattr(object, e))] #过滤式列表解析,取出对象的可调用的方法或函数---组成列表
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s) #and-or结构,如果collapse有值压缩空白间隔(lambda s: " ".join(s.split())) 函数),没有的话原样返回文档字符串((lambda s: s)函数)
print "\n".join(["%s %s" % #一个方法和一个文档字符串一行,\n为换行
(method.ljust(spacing), #方法名左对齐,右边用空格补齐,
processFunc(str(getattr(object, method).__doc__))) #getattr是对object对象的method方法的引用,返回method方法,调用它的文档字符串,str方法是防止方法没有文档字符串,返回none不显示,str(none)会显示‘none’,processFunc(string),会压缩string的空白间隔。
for method in methodList])
if __name__ == "__main__":
print help.__doc__