当前位置: 首页 > 面试题库 >

如何获得对象的方法和属性的完整列表?

贝浩歌
2023-03-14
问题内容
dir(re.compile(pattern))

不返回pattern作为列表的元素之一。即它返回:

['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 'search', 'split', 'sub', 'subn']

根据手册,它应该包含

对象的属性名称,其类的属性名称,以及递归其类的基类的属性。

它也说

该列表不一定完整。

有没有办法获得 完整的 清单?我一直以为dir返回一个完整的列表,但显然并没有…

另外:有没有办法只列出属性?还是只有方法?

编辑:这实际上是python中的错误- >据称它已在3.0分支中修复(也许在2.6中已修复)


问题答案:

对于属性的 完整
列表,简短的答案是:否。问题在于属性实际上定义为getattr内置函数接受的参数。由于用户可以重新实现__getattr__,突然允许任何类型的属性,因此没有可能的通用方法来生成该列表。该dir函数返回__dict__属性中的键,即,如果__getattr__未重新实现该方法,则所有可访问的属性。

对于第二个问题,这没有任何意义。实际上,方法是可调用的属性,仅此而已。但是,您可以过滤可调用的属性,并使用该inspect模块确定类的方法,方法或函数。



 类似资料:
  • 本文向大家介绍JS获得一个对象的所有属性和方法实例,包括了JS获得一个对象的所有属性和方法实例的使用技巧和注意事项,需要的朋友参考一下 今天遇到一个比较棘手的问题,需要了解一个JS对象的所有属性和方法,在网上发现这段代码,帮我解决了问题,记录下来,核心代码和原理如下: 以上这篇JS获得一个对象的所有属性和方法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我在本体论中工作,我有以下swhl规则: 我想知道负对象属性断言何时发生(当verifiedAssociation不为true时)。 我在Protégé上找到了tab属性断言,但我希望(推理者)能够推断出这一点。我不知道如何创建一个规则来实现这一点。 有人能帮帮我吗?

  • 我的查询对象是 但是 <代码>列表 将结果列表转换为classNameList。当我迭代单个值时,我的实体值在ClassName属性中为空。调用getter方法时不显示值。我的pojo看起来如下所示,当我打印pojo的值为空时,我的foreach正好迭代四次。 我的查询对象来自com.google.cloud.firestore包。和ApiFuture来自com.google.api.core.A

  • 这不只是为每个属性做一堆if/else if用例吗?

  • 问题内容: 使用进行调试时,如何获取完整的对象? 输出: 但我也想看看财产的内容。 问题答案: 您需要使用: 产出 参见docs。

  • 问题内容: 说我这样创建一个对象: 检索属性名称列表的最佳方法是什么?即我想以一些变量“键”结束: 问题答案: 在现代浏览器(IE9 +,FF4 +,Chrome5 +,Opera12 +,Safari5+)中,您可以使用内置的Object.keys方法: 上面有完整的polyfill,但简化的版本是: 或者替换为,以允许您调用任何对象。扩展原型会产生一些副作用,我不建议您这样做。