提供访问对象引用(子对象)的API。

sw.objectinspection的Python项目详细描述


软件对象检查

objectinspection是一个工具,它为您提供了一个要检查的通用api 对象的属性及其子对象。它有两个 基本检查员(BasicAttributesInspectorBasicChildrenInspector) 可以很容易地用你自己的检查员代替。

设置

创建一些稍后检查的对象:

>>> class Child1(object):
...     pass
>>> class Child2(object):
...     pass
>>> class Child3(object):
...     pass
>>> class Child4(object):
...     misc = Child1()
>>> class ToInspect(object):
...     some_var = ["some tupel", (Child2(), Child3())]
...     other_var = {"foo": "bar"}
...     _private_var = 10
...     desc = Child4()
...
...     def some_method(self):
...         pass

检查属性

通过适应IAttributesInspector,获得AttributesInspector

>>> from sw.objectinspection import IAttributesInspector
>>> inspector = IAttributesInspector(ToInspect())

因为注册的ToInspect对象没有专门的检查器, 使用BasicAttributesInspector

>>> inspector
<sw.objectinspection.BasicAttributesInspector object at 0x11f69d0
 used for ToInspect object at 0x11f6910>

要开始检查,只需致电检查员:

>>> inspector()
['desc', 'other_var', 'some_var']

儿童检查

检查子项的工作方式与检查属性的工作方式相同:

>>> from sw.objectinspection import IChildrenInspector
>>> inspector = IChildrenInspector(ToInspect())
>>> inspector
<sw.objectinspection.BasicChildrenInspector object at 0x11f6a10
 used for ToInspect object at 0x11f6910>
>>> sorted(inspector())
[<Child2 object at 0x119cc10>,
 <Child3 object at 0x11f5790>,
 <Child4 object at 0x11f5830>]

编写自己的检查员

您可以编写自己的检查器并将其注册为比 此软件包附带的基本功能:

>>> from sw.objectinspection import BasicInspector
>>> import zope.component
>>> import zope.interface
>>> class DummyAttributesInspector(BasicInspector):
...     zope.component.adapts(ToInspect)
...     zope.interface.implements(IAttributesInspector)
...
...     def __call__(self):
...         # The object, which is to be inspected, can be accessed
...         # with self._inspecting
...         return ['foo', 'bar']
>>> gsm = zope.component.getGlobalSiteManager()
>>> gsm.registerAdapter(DummyAttributesInspector)

现在,当检查属性时,我们得到 DummyAttributesInspector

>>> inspector = IAttributesInspector(ToInspect())
>>> inspector
<DummyAttributesInspector object at 0x11f69d0
 used for ToInspect object at 0x11f6910>
>>> inspector()
['foo', 'bar']

更改

1.0.1(2009-08-13)

  • 修复运行Windows的系统的内存地址检查程序。

1.0(2009-07-29)

  • 初次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java附加两个数组   java如何在Extjs的不同页面中使用相同的存储   java Jung,大顶点的布局重叠,图形出现在奇怪的位置   java如何在Android中通过画布绘制圆?   java验证库设计模式选择   java研磨机未知标记“timedTests”   java Android领域子类实例方法   java使用resteasy/jaxrs从请求负载接收两种类型的数据   缓冲策略Java缓冲策略有时不能正确绘制   java跟踪棋子   密度无关像素如何在java中锐化图像缩略图?   java如何在MongoDB更新查询中编写(或)更新   java A*寻路游戏系统退出问题   java在安卓中读取xml的最佳方式是什么?   通过反射调用的方法的java抑制警告   安卓 java。语言错误:信号11(SIGSEGV),代码10(?),故障地址006e006f   java lombok 1.18.2使用DexBuilderForDebug抛出TransformClasses   java JOptionPane CD对话框按钮?   java只返回json中的一些值,而不是完整实体对象   java包不存在错误,请稍后重试