1 def info(object, spacing=10, collapse=True):
2 """Print methods and doc strings.
3
4 Takes module, class, list, dictionary, or string."""
5 methodList = [method for method in dir(object) if callable(getattr(object, method))]
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__)))
2 """Print methods and doc strings.
3
4 Takes module, class, list, dictionary, or string."""
5 methodList = [method for method in dir(object) if callable(getattr(object, method))]
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])
- 用可选和命名参数定义和调用函数
- 用str强制转换任意值为字符串形式
- 用getattr动态得到函数和其它属性的引用
- 扩展列表解析语法实现列表过滤
- 识别and-or技巧并安全地使用它
- 使用lambda 函数