【发布时间】:2010-09-16 12:02:39
【问题描述】:
dir(re.compile(pattern))
不返回模式作为列表的元素之一。即它返回:
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 'search', 'split', 'sub', 'subn']
根据手册,它应该包含
对象的属性名称, 其类属性的名称,以及 递归地对其属性 类的基类。
它也说
列表不一定完整。
有没有办法获得完整的列表?我一直认为 dir 返回一个完整的列表,但显然它没有......
另外:有没有办法只列出属性?还是只有方法?
编辑:这实际上是 python 中的一个错误 -> 据说它已在 3.0 分支中修复(可能也在 2.6 中)
【问题讨论】:
-
使用
dir()或检查模块通常是正确的方法。你是用re模块作为例子还是你想达到一个特殊的目标? -
您确定该模式在编译后实际上保留为数据吗?我的印象是编译模式的目的是生成解析给定模式所必需的有限状态自动机。
-
@hop 不能被类规避?例如,他们可以在
__dir__() -
ytpillai:正确,但仅在 Python 3 中。即便如此,问题是这样的类是否属于“一般情况”
标签: python