问题标签 [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 投票
8 回答
220715 浏览

python - 如何在 python 中打印变量名?

假设我有一个名为choice它的变量等于 2。我将如何访问该变量的名称?相当于

用于制作字典。有一个很好的方法可以做到这一点,我只是想念它。

编辑:

这样做的原因是这样的。我正在运行一些数据分析的东西,我用多个参数调用程序,我想在运行时调整或不调整。我从格式为的 .config 文件中读取了上次运行中使用的参数

当提示输入值时,会显示先前使用的值,并且空字符串输入将使用先前使用的值。

我的问题出现是因为在编写这些值已被扫描到的字典时。如果需要一个参数,我运行get_param它访问文件并找到参数。

我想我会通过阅读 . config归档一次并从中生成字典。我最初避免这样做是出于……我不再记得的原因。完美的情况来更新我的代码!

0 投票
2 回答
1356 浏览

python - 使用超级问题(python 2.5.2)

我正在为我的程序编写一个插件系统,但我无法克服一件事:

测试插件如下所示:

现在 IPlugin 看起来像这样:

所有 IPlugin 类本身都可以完美运行,但是当被 ThingLoader 调用时,程序会出现异常:

我环顾四周,我根本不知道发生了什么事。

0 投票
3 回答
5810 浏览

python - Python 反射和类型转换

在 Python 中,str()、int()、float() 等函数通常用于执行类型转换。但是,这些要求您在开发时知道要转换为哪种类型。我正在尝试编写的一些 Python 代码的子问题如下:

给定两个变量foobar,找出 的类型foo。(在开发时不知道,因为这是通用代码。)然后,尝试转换bar为任何类型foo。如果无法做到这一点,则抛出异常。

例如,假设您调用了执行此操作的函数conv。它的签名看起来像

它会被称为:

0 投票
2 回答
3363 浏览

python - 是否可以从解释器中运行的 python 代码写入 sys._getframe() 返回的 python 框架对象?

关于这个问题,解释器中有一些脚手架来检查框架对象,可以通过sys._getframe(). 框架对象似乎是只读的,但我在明确说明这一点的文档中找不到任何明显的东西。有人可以确认这些对象是可写的(以某种方式)还是只读的?

这会在运行时打印出 ' foo',但下面的帖子演示了在交互式 shell 中从当前帧运行时该变量是可写的。

0 投票
6 回答
2279 浏览

python - python:确定一个类是否嵌套

假设您有一个获取类型作为参数的 python 方法;是否可以确定给定类型是否是嵌套类?
例如在这个例子中:

我还希望调用show_type_info(OuterClass.InnerClass)显示 InnerClass 是在 OuterClass 中定义的。

0 投票
6 回答
2840 浏览

python - Python 自省:如何获取对象属性的“未排序”列表?

以下代码

输出

如何让它按照代码中定义这些类的顺序输出?IE

除了使用 inspect.getsource(A) 并解析之外,还有其他方法吗?

0 投票
8 回答
237741 浏览

javascript - 如果我不知道名称,如何访问 javascript 对象的属性?

假设你有一个这样的 javascript 对象:

您可以通过属性名称访问属性:

但是,如果您不知道属性的名称,是否可以获得这些值?这些属性的无序性质是否无法区分它们?

在我的例子中,我特别考虑了一个函数需要接受一系列名称-值对,但属性的名称可能会改变的情况。

到目前为止,我对如何做到这一点的想法是将属性的名称与数据一起传递给函数,但这感觉就像一个 hack。如果可能的话,我更愿意通过内省来做到这一点。

0 投票
2 回答
714 浏览

python - Python:为什么我不能使用 locals() 修改函数内的当前范围?

为什么创建/修改 locals() 的成员在函数中不起作用?

0 投票
3 回答
53937 浏览

python - 如何在 Python 中获取类的文件路径?

给定 Python 中的 C 类,我如何确定该类是在哪个文件中定义的?我需要可以从 C 类或 C 类实例中工作的东西。

我这样做的原因是因为我通常不喜欢将属于同一文件夹的文件放在一起。我想创建一个使用 Django 模板将自身呈现为 HTML 的类。基本实现应根据定义类的文件名推断模板的文件名。

假设我在文件“base/artifacts.py”中放置了一个类 LocationArtifact,那么我希望默认行为是模板名称是“base/LocationArtifact.html”。

0 投票
1 回答
180 浏览

ruby-on-rails - 是否可以在 rails 中自动派生缓存键的组件?

在 Web 应用程序中为呈现的内容生成缓存键时,您必须考虑所有可能改变结果的变量。
在像 rails 这样的动态环境中,这些可以在不同的地方定义:控制器、模型、会话或服务器环境。它们可以在模板中、在模板中呈现的模板或助手中引用。你能想出一种方法来自动生成有助于渲染模板内容的变量列表,也许使用ParseTree