草庐IT

gobject-introspection

全部标签

python - 如何在 Python 2.x 中对对象执行自省(introspection)?

我正在使用Python2.x,我有一个从以太中召唤的物体;关于它的文档不是特别清楚。我希望能够获得该对象的属性列表以及每个属性的类型。同样,我还想获取该对象的方法列表,以及我可以找到的有关该方法的任何其他信息,例如参数数量及其各自的类型。我感觉我只是在Google搜索中遗漏了正确的术语。并不是说我想脱离细节,但它是ActiveDirectory,所以这总是很有趣。 最佳答案 嗯...您的第一站将是一个简单的目录(对象)。这将显示所有对象的成员,包括字段和方法。在交互式Pythonshell中尝试一下,然后试一试。例如:>classF

python - 如何自省(introspection) django 模型字段?

当我只知道字段名称和模型名称(均为纯字符串)时,我正在尝试获取模型内字段的类信息。怎么可能?我可以动态加载模型:fromdjango.dbimportmodelsmodel=models.get_model('myapp','mymodel')现在我有字段-'myfield'-我怎样才能获得该字段的类?如果字段是关系型-如何获取相关字段?非常感谢! 最佳答案 您可以使用模型的_meta属性来获取字段对象,并从字段中获取关系等等,例如考虑一个员工表,它有一个部门表的外键In[1]:fromdjango.dbimportmodelsIn

python - 如何自省(introspection) django 模型字段?

当我只知道字段名称和模型名称(均为纯字符串)时,我正在尝试获取模型内字段的类信息。怎么可能?我可以动态加载模型:fromdjango.dbimportmodelsmodel=models.get_model('myapp','mymodel')现在我有字段-'myfield'-我怎样才能获得该字段的类?如果字段是关系型-如何获取相关字段?非常感谢! 最佳答案 您可以使用模型的_meta属性来获取字段对象,并从字段中获取关系等等,例如考虑一个员工表,它有一个部门表的外键In[1]:fromdjango.dbimportmodelsIn

Java自省(introspection): object to map

我有一个Java对象obj具有属性obj.attr1,obj.attr2等等。属性可能通过额外的间接级别访问:obj.getAttr1(),obj.getAttr2(),如果不公开。挑战:我想要一个接收对象并返回Map的函数,其中键是字符串"attr1","attr2"等和值是对应的对象obj.attr1,obj.attr2.我想这个函数会被像这样的东西调用toMap(obj),或toMap(obj,"attr1","attr3")(其中attr1和attr3是obj属性的子集),或者也许toMap(obj,"getAttr1","getAttr3")如有必要。我对Java的内省(in

Java自省(introspection): object to map

我有一个Java对象obj具有属性obj.attr1,obj.attr2等等。属性可能通过额外的间接级别访问:obj.getAttr1(),obj.getAttr2(),如果不公开。挑战:我想要一个接收对象并返回Map的函数,其中键是字符串"attr1","attr2"等和值是对应的对象obj.attr1,obj.attr2.我想这个函数会被像这样的东西调用toMap(obj),或toMap(obj,"attr1","attr3")(其中attr1和attr3是obj属性的子集),或者也许toMap(obj,"getAttr1","getAttr3")如有必要。我对Java的内省(in

Java 堆栈自省(introspection)

我希望有人可以帮助我解决以下问题:我对java堆栈自省(introspection)的理解(这里可能有点过于简单化)是一个进程生成一个堆栈帧,然后将其添加到堆栈中。现在,当进程需要进行系统调用时,堆栈自省(introspection)算法会检查是否允许委托(delegate)人(即尝试访问资源的进程)使用特定资源,然后相应地注释框架(授予或禁止访问权限)).我的问题是:以上是正确的还是我遗漏了什么?JVM如何决定是授予还是限制访问权限?用户是否参与了这个决定?在thisstudy有一个示例(图2),其中一个框架继承/被告知前一个框架的“信念集”!在此示例中,是什么阻止了恶意代码的执行(

c++ - GObject 与 C++ : What benefits does GObj offer, 以及它在速度/大小方面的比较如何?

它为面向对象的语言(如C++)提供了什么?还是没有它就不能使用GTK+?假设两个示例使用相同的编译器,就可执行文件的大小和速度而言,对象的GObject实现是否具有与C++相似的质量?或者是否有一些权衡取舍GObject会因为它提供的额外功能而变慢? 最佳答案 GObject(有点像Windows世界中的COM)是一种CAPI,设计时考虑了跨语言互操作性。这意味着您可以在任何支持调用C函数的语言中使用GObjects,但这使得用非C语言编写真正可从任何语言重用的GObjects变得非常困难(如果例如,你用Python编写了一个GOb

objective-c - Objective-C 对象属性的自省(introspection)

是否可以在不使用运行时方法的情况下以编程方式获取objective-c中对象的属性?我之所以问,是因为似乎没有必要在运行时检查它,而实际上它不会改变。我在想这样的事情:MyObject*foo=[[MyObjectalloc]init];NSDictionary*propertiesNamesAndValues=[foogetAllProperties];目前我的解决方案是这样的:idcurrentClass=[MyObjectclass];NSString*propertyName;unsignedintoutCount,i;objc_property_t*properties=cl

Python、线程和 gobject

我正在使用pygtk通过框架编写程序。主程序做以下事情:创建一个看门狗线程来监控一些资源创建客户端从socket接收数据调用gobject.Mainloop()但是好像我的程序进入Mainloop后,看门狗线程也不会运行。我的解决方法是使用gobject.timeout_add来运行监视器。但为什么创建另一个线程不起作用?这是我的代码:importgobjectimporttimefromthreadingimportThreadclassMonitorThread(Thread):def__init__(self):Thread.__init__(self)defrun(self):

python - 安装gobject模块?

我想使用dbus-python库(我只是pip安装了它),它们提供了一些关于让两个程序进行通信的很好的例子。在他们的一个.py文件中有一个“importgobject”行,当我运行这个例子时会导致“ImportError:Nomodulenamedgobject”。我想知道我应该安装什么来获得这个模块(我在Ubuntu上使用Python3)。当我使用python2.7时,这个导入工作正常并且gobject.__file__变量包含:/usr/lib/python2.7/dist-packages/gobject/__init__.pyc 最佳答案