gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:13:48 27 4
gpt4 key购买 nike

dir(re.compile(pattern)) 

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

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

根据手册,它应该包含

the object's attributes' names, the names of its class's attributes, and recursively of the attributes of its class's base classes.

它也说

The list is not necessarily complete.

有没有办法获得完整的列表?我一直认为 dir 返回一个完整的列表,但显然它没有......

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

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

最佳答案

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

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

关于python - 如何获取对象的方法和属性的完整列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com