Dive into python学习笔记

mac2022-06-30  64

http://woodpecker.org.cn/diveintopython/index.html

1.第一个程序odbchelper.py

1 def buildConnectionString(params): 2 """Build a connection string from a dictionary 3 4 Returns string. 5 """ 6 return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) 7 8 if __name__ == "__main__": 9 myParams = {"server":"mpilgrim", \ 10 "database":"master", \ 11 "uid":"sa", \ 12 "pwd":"secret" 13 } 14 print buildConnectionString(myParams)

关键点理解:

1.三重引号

"""Build a connection string from a dictionary  Returns string. """常用于定义doc string,文档化python函数

2.  ";".join(["%s=%s" % (k, v) for k, v in params.items()])

params.items()表明params必然是directory,调用items()方法返回键值对元组列表,利用多重赋值取出键值(k,v)元组,然后调用字符串对象的join方法将这些键值对用;隔开,join方法将list中的元素连接成单个字符串,打印的结果也就不再是列表的形式;注:join只能用于元素师字符串的list

运行结果为:server=mpilgrim;uid=sa;database=master;pwd=secret

附:split与join正好相反,它是将一个字符串分割成多元素list

>>>s.split(";") (1)

['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']

 3.if __name__ == "__main__":用于测试模块

2.自省apihelper.py

1 def info(object, spacing=10, collapse=1): 2 """Print methods and doc strings. 3 4 Takes module, class, list, dictionary, or string.""" 5 methodList = [e for e in dir(object) if callable(getattr(object, e))] 6 processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s) 7 print "\n".join(["%s %s" % 8 (method.ljust(spacing), 9 processFunc(str(getattr(object, method).__doc__))) 10 for method in methodList]) 11 12 if __name__ == "__main__": 13 print help.__doc__

 

转载于:https://www.cnblogs.com/CoolRandy/p/3298897.html

最新回复(0)