问题标签 [metaclass]

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 投票
3 回答
3203 浏览

python - python:子类一个元类

为了将各种类的方法放入全局注册表中,我使用了带有元类的装饰器。装饰器标签,元类将函数放入注册表:

我现在已经到了需要两个函数注册表的地步。第一个想法是对元类进行子类化并将另一个注册表放入其中。为此,只需重写新方法即可。

由于重写意味着冗余代码,这不是我真正想要的。因此,如果有人能说出一种如何将属性放入元类中的方法,该方法可以在执行new时读取,那就太好了。这样就可以放入正确的注册表,而无需重写新的.

0 投票
2 回答
2567 浏览

groovy - 删除单个元类方法

我已经开始学习 Groovy,目前正在研究元类功能。我已经看到了添加新方法和删除所有方法的示例,但没有看到删除单个方法的示例。例如:

具有明显的副作用。现在我看到你可以说

删除所有方法。我希望人们可以说一些类似的东西

删除 String.foo(),但保留 String.bar(),但是此语句似乎没有任何效果。有没有办法说不应该再定义方法 foo() 而不影响 bar() 或任何其他添加的方法?

0 投票
1 回答
1476 浏览

groovy - 如何在 Groovy 中动态覆盖类的“each”方法?

Groovy将 each()和许多其他方法添加到 java.lang.Object。我不知道如何使用 Groovy 元类来动态替换 Java 类上的默认 each()。

我可以看到如何添加新方法:

但是在覆盖方法时,似乎相同的方法不起作用:

我究竟做错了什么?如何在 Groovy 中动态覆盖 each()?

0 投票
1 回答
7108 浏览

python - SQLAlchemy 中的动态类创建

我们需要创建 SQLAlchemy 类来访问多个外部数据源,这些数据源的数量会随着时间的推移而增加。我们为核心 ORM 模型使用声明性基础,我知道我们可以使用 autoload=True 手动指定新的 ORM 类来自动生成映射。

问题是我们需要能够动态生成它们,如下所示:

并将其动态地变成这样的东西:

我们不希望类的持续时间超过打开连接、执行查询然后关闭连接所需的时间。因此,理想情况下,我们可以将上面“存储”变量中的项目放入数据库中,并根据需要拉取它们。另一个挑战是对象名称(例如“MyObject”)可能用于不同的连接,因此我们无法定义一次并保留它。

任何关于如何实现这一点的建议将不胜感激。

谢谢...

0 投票
3 回答
4067 浏览

python - 在 Python 中使用 getattr 调用方法

如何使用 getattr 调用方法?我想创建一个元类,它可以调用以“oposite_”开头的其他类的不存在方法。该方法应具有相同数量的参数,但返回相反的结果。

但问题是

返回一个 NoneType 对象。

如何处理?

0 投票
2 回答
3143 浏览

python - 在 Django 中通过 admin 生成的表单

我需要能够从管理面板创建表单。过程如下所示:单击“添加表单”,然后输入表单应发送到的电子邮件,当然还有几个字段(可能归功于内联),包括字段名称、类型以及是否需要。用户应该能够查看和填写表格并提交,并且数据应该发送到管理员中提供的电子邮件。

一切看起来都很简单,但从我的角度来看,它需要一些元类编程技能。

任何人都可以给我指出一个好的 Django 表单构建器,或者至少提供一些关于创建这样的东西的技巧吗?我找到了django-forms-builder,但恕我直言,它有点太受限制了。

0 投票
2 回答
701 浏览

ruby - 给定一个 Ruby 对象的实例,我如何获得它的元类?

通常,我可能会通过以下方式获取 Ruby 对象的特定实例的元类:

假设我只想知道任意类的任意对象实例的元obj类,并且不想metaclassobj.

有没有办法做到这一点?

0 投票
2 回答
18195 浏览

python - 元类多重继承不一致

为什么是这样:

好的,并且按预期工作:

但是这个:

不行,就这样炸了?:

0 投票
7 回答
22007 浏览

python - 使用装饰器自动注册类方法

我希望能够创建一个 python 装饰器,它自动在全局存储库中“注册”类方法(具有一些属性)。

示例代码:

我希望在加载完成后,某处会有一个包含:

这可能吗?

0 投票
2 回答
313 浏览

python - 装饰算术运算符 | 我应该使用元类吗?

我想实现一个对象,在对其应用算术运算后将值限制在给定范围内。下面的代码工作正常,但我毫无意义地重写了这些方法。当然有一种更优雅的方式来做到这一点。元类是要走的路吗?