当前位置:  开发笔记 > 编程语言 > 正文

如何在Python 2.x中对对象执行自省?

如何解决《如何在Python2.x中对对象执行自省?》经验,为你挑选了3个好方法。

我正在使用Python 2.x,我有一个我正在从以太召唤的对象; 关于它的文件不是特别清楚.我希望能够获得该对象的属性列表以及每个属性的类型.

同样,我想获得该对象的方法列表,以及我可以在该方法上找到的任何其他信息,例如参数的数量和它们各自的类型.

我有一种感觉,我只是在Google搜索中错过了正确的术语.并不是说我想破坏具体细节,但它是Active Directory,所以这总是很有趣.



1> unwind..:

嗯......你的第一站将是一个简单的目录(对象).这将显示所有对象的成员,包括字段和方法.在交互式Python shell中试一试,然后玩一下.

例如:

> class Foo:
   def __init__(self):
    self.a = "bar"
    self.b = 4711

> a=Foo()
> dir(a)
['__doc__', '__init__', '__module__', 'a', 'b']



2> gimel..:

怎么样的:

>>> o=object()
>>> [(a,type(o.__getattribute__(a))) for a in dir(o)]
[('__class__', ), ('__delattr__', ), 
('__doc__', ), ('__format__', ),
('__getattribute__', ), ('__hash__', ),
('__init__', ), 
('__new__', ),
('__reduce__', ),
('__reduce_ex__', ),
('__repr__', ), ('__setattr__', ),
('__sizeof__', ),
('__str__', ),
('__subclasshook__', )]
>>> 

更结构化的方法是使用inspect模块:

inspect模块提供了几个有用的函数来帮助获取有关活动对象的信息,例如模块,类,方法,函数,回溯,框架对象和代码对象.例如,它可以帮助您检查类的内容,检索方法的源代码,提取和格式化函数的参数列表,或获取显示详细回溯所需的所有信息.



3> Akbar ibrahi..:

" Python内省指南 "是一篇很好的文章,可以帮助您入门.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有