问题标签 [introspection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
76889 浏览

c# - 什么是 C# 等价于 Java 的 isInstance()?

我知道isand asfor instanceof,但是反射isInstance()方法呢?

0 投票
3 回答
25295 浏览

javascript - 如何进行 JavaScript 对象自省?

在所有探测之后,如果一个据报道有效的对象对任何探测的属性返回“未定义”,该怎么办?我使用 jQuery,在函数范围内,$('selector').mouseover(function() { });一切都返回“未定义” 。$(this)选择器是地图标签的“区域”,我正在寻找它的父属性。

0 投票
2 回答
176 浏览

c++ - 访问我有 xml 描述的存储结构

我已经建立了一种支持自省的 C++ 库,它允许使用最少的宏和相当多的模板技巧来声明结构和类,这些结构和类得到了一些元信息的丰富。

此元信息捕获有关您声明的结构/类的每个字段的所有重要细节,并且在故事的结尾,您可以为每个以这种方式丰富的结构/类生成一个转储的 xml 文件,用于每个字段,其名称、类型、长度、偏移量等等等。

对于我的问题,我不需要支持作为指针的字段,而只需要支持原始类型、数组和 STL 容器(向量、列表等)

填充这些元丰富的结构/类(“生产者”)的代码,在某个点将它们序列化(现在它是所有原始类型和 STL 容器使用的所有“缓冲区”的简单二进制转储,如果任何)。

现在我需要开始开发一个能够在运行时从“生产者”构建的 xml 描述开始的“阅读器”对应物,以访问存储数据的各个字段。

我认为这是动态数据字典解释的问题,但我所知道的一切都与回读 xml 数据有关,而我有二进制数据和它的 xml 描述......

最好的方法是什么?那里有什么类似于这个问题并且我可以从中获得灵感的东西吗?

0 投票
3 回答
1103 浏览

ruby-on-rails - 如何在 Ruby on Rails 中动态地将方法添加到 Math 类?

我正在尝试将以下方法添加到 Ruby on Rails 中的 Math 类:

然后我将以下内容添加到我的 environment.rb 中:

当我打开 Rails 控制台时,我收到以下错误:'./lib/math.rb:2:TypeError Math is not a class'

似乎我忽略了一些非常简单的事情。

有什么想法吗?

在此先感谢您的帮助。

0 投票
4 回答
19961 浏览

perl - 如何确定运行时是否存在 Perl 函数?

我正在使用 Perl 开发一个测试框架。作为测试的一部分,我可能需要为任何给定的测试添加前置条件或后置条件检查,但不一定适用于所有测试。到目前为止,我所拥有的是:

不幸的是,如果该函数不存在,则会输出“未定义的子例程 &verify_precondition_TEST1 调用于 ...”。

在尝试调用它之前,如何提前确定该函数是否存在?

0 投票
2 回答
1410 浏览

ruby - 在 ruby​​ 中,我怎么知道哪个模块被定义为“加载”或“要求”的结果?

在 ruby​​ 中,如果我确实“需要 foo”,有没有办法随后确定 foo.rb 中定义的一个或多个模块的名称?

例如,假设我有一个名为 foo.rb 的 ruby​​ 文件,如下所示:

在另一个脚本中,在我执行“require foo”之后,如何确定我现在有一个名为 MyModule 的模块?

最终我追求的是能够做这样的事情:

虽然我可以强迫自己使模块名和文件名相同,但我宁愿不这样做。我希望在制作短文件名时更加自由,但模块名称更具表现力。但是,我向自己保证每个文件只会定义一个模块(想想:插件)。

0 投票
3 回答
1089 浏览

python - 您如何确定 Python 类的每个属性和方法的定义位置?

给定 Python 中某个类的实例,能够确定哪一行源代码定义了每个方法和属性(例如实现1)将很有用。例如,给定一个模块 ab.py

定义一个函数 where(class_, attribute) 返回一个元组,该元组包含定义或子类化的源代码中的文件名、类和行attribute。这意味着在班级主体中的定义,而不是由于过度活跃而导致的最新分配。如果它为某些属性返回“未知”,那很好。

我想在自省 Plone 时使用它,其中每个对象都有数百个方法,按类而不是按字母顺序对它们进行排序非常有用。

当然,在 Python 中你不能总是合理地知道,但在大多数静态代码的常见情况下获得好的答案会很好。

0 投票
1 回答
357 浏览

python - 为什么 dir(x) 中的所有名称都不能用于属性访问?

__dict__为什么编码员会将不能用于属性访问的东西塞入其中?例如,在我的 Plone 实例中,dir(portal)包含index_html,但portal.index_html会引发 AttributeError。__class__的属性也是如此Products.ZCatalog.Catalog.mybrains。有充分的理由dir()不值得信任吗?

在模块周围戳inspect,我看到他们使用object.__dict__['x']而不是属性访问是出于这个原因并且因为他们不想触发getattr魔法。

0 投票
10 回答
1251922 浏览

python - 获取实例的类名?

如果我正在执行此操作的函数是派生实例类的基类,我如何找出在 Python 中创建对象实例的类的名称?

在想也许检查模块可能在这里帮助了我,但它似乎并没有给我想要的东西。并且缺少解析__class__成员,我不确定如何获取此信息。

0 投票
5 回答
24036 浏览

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

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

同样,我还想获取该对象的方法列表,以及我可以找到的有关该方法的任何其他信息,例如参数的数量及其各自的类型。

我有一种感觉,我只是在我的谷歌搜索中错过了正确的行话。并不是说我想破坏细节,但它是 Active Directory,所以这总是很有趣。