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__
)))
10 for method in methodList])
- 用可选和命名参数定义和调用函数
- 用str强制转换任意值为字符串形式
- 用getattr动态得到函数和其它属性的引用
- 扩展列表解析语法实现列表过滤
- 识别and-or技巧并安全地使用它
- 使用lambda 函数