问题标签 [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.
python - python:子类一个元类
为了将各种类的方法放入全局注册表中,我使用了带有元类的装饰器。装饰器标签,元类将函数放入注册表:
我现在已经到了需要两个函数注册表的地步。第一个想法是对元类进行子类化并将另一个注册表放入其中。为此,只需重写新方法即可。
由于重写意味着冗余代码,这不是我真正想要的。因此,如果有人能说出一种如何将属性放入元类中的方法,该方法可以在执行new时读取,那就太好了。这样就可以放入正确的注册表,而无需重写新的.
groovy - 删除单个元类方法
我已经开始学习 Groovy,目前正在研究元类功能。我已经看到了添加新方法和删除所有方法的示例,但没有看到删除单个方法的示例。例如:
具有明显的副作用。现在我看到你可以说
删除所有方法。我希望人们可以说一些类似的东西
删除 String.foo(),但保留 String.bar(),但是此语句似乎没有任何效果。有没有办法说不应该再定义方法 foo() 而不影响 bar() 或任何其他添加的方法?
groovy - 如何在 Groovy 中动态覆盖类的“each”方法?
Groovy将 each()和许多其他方法添加到 java.lang.Object。我不知道如何使用 Groovy 元类来动态替换 Java 类上的默认 each()。
我可以看到如何添加新方法:
但是在覆盖方法时,似乎相同的方法不起作用:
我究竟做错了什么?如何在 Groovy 中动态覆盖 each()?
python - SQLAlchemy 中的动态类创建
我们需要创建 SQLAlchemy 类来访问多个外部数据源,这些数据源的数量会随着时间的推移而增加。我们为核心 ORM 模型使用声明性基础,我知道我们可以使用 autoload=True 手动指定新的 ORM 类来自动生成映射。
问题是我们需要能够动态生成它们,如下所示:
并将其动态地变成这样的东西:
我们不希望类的持续时间超过打开连接、执行查询然后关闭连接所需的时间。因此,理想情况下,我们可以将上面“存储”变量中的项目放入数据库中,并根据需要拉取它们。另一个挑战是对象名称(例如“MyObject”)可能用于不同的连接,因此我们无法定义一次并保留它。
任何关于如何实现这一点的建议将不胜感激。
谢谢...
python - 在 Python 中使用 getattr 调用方法
如何使用 getattr 调用方法?我想创建一个元类,它可以调用以“oposite_”开头的其他类的不存在方法。该方法应具有相同数量的参数,但返回相反的结果。
但问题是
返回一个 NoneType 对象。
如何处理?
python - 在 Django 中通过 admin 生成的表单
我需要能够从管理面板创建表单。过程如下所示:单击“添加表单”,然后输入表单应发送到的电子邮件,当然还有几个字段(可能归功于内联),包括字段名称、类型以及是否需要。用户应该能够查看和填写表格并提交,并且数据应该发送到管理员中提供的电子邮件。
一切看起来都很简单,但从我的角度来看,它需要一些元类编程技能。
任何人都可以给我指出一个好的 Django 表单构建器,或者至少提供一些关于创建这样的东西的技巧吗?我找到了django-forms-builder,但恕我直言,它有点太受限制了。
ruby - 给定一个 Ruby 对象的实例,我如何获得它的元类?
通常,我可能会通过以下方式获取 Ruby 对象的特定实例的元类:
假设我只想知道任意类的任意对象实例的元obj
类,并且不想metaclass
在obj
.
有没有办法做到这一点?
python - 元类多重继承不一致
为什么是这样:
好的,并且按预期工作:
但是这个:
不行,就这样炸了?:
python - 使用装饰器自动注册类方法
我希望能够创建一个 python 装饰器,它自动在全局存储库中“注册”类方法(具有一些属性)。
示例代码:
我希望在加载完成后,某处会有一个包含:
这可能吗?
python - 装饰算术运算符 | 我应该使用元类吗?
我想实现一个对象,在对其应用算术运算后将值限制在给定范围内。下面的代码工作正常,但我毫无意义地重写了这些方法。当然有一种更优雅的方式来做到这一点。元类是要走的路吗?