1:
def buildConnectionString(param):
"""
"""
return ";".join("%s=%s" %(k,v) for k,v in param.items())
if __name__=="__main__":
myParams={"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
print buildConnectionString(myParams)
--------------------------
没什么好说的
2:
def info(object,spacing=10,collapse=1):
"""
list the api of the object
"""
methodList=[method for method in dir(object) if callable(getattr(object,method))]
processFunc=collapse and (lambda s:" ".join(s.split())) or (lambda s:s)
print "\n".join("%s %s" %(method.ljust(spacing),processFunc(str(getattr(object,method).__doc__))) for method in methodList )
if __name__=="__main__":
print info.__doc__
li=[]
info(li)
-----------------------------------------------------
methodList=[method for method in dir(object) if callable(getattr(object,method))]
注意句法, XX for in XXX if ***
processFunc=collapse and (lambda s:" ".join(s.split())) or (lambda s:s)
lambda表达式 and or
and例子
>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
>>> 'a' and 'b' and 'c'
'c'
如果有假值,则返回第一个假值,否则返回最后一个真值
or例子:
>>> 'a' or 'b'
'a'
>>> '' or 'b'
'b'
>>> '' or [] or {}
{}
如果有真值,返回第一个真值,否则返回最后一个假值
lambda例子:
>>> def f(x):
... return x*2
...
>>> f(3)
6
>>> g = lambda x: x*2
>>> g(3)
6
>>> (lambda x: x*2)(3)
6