python - 使用元类定义对象实例属性
问题描述
我正在尝试使用元类来生成一个类,该类的对象具有实例属性。这是预期的结果:
class Foo:
def __init__(self):
self._var_a = None
self._var_b = None
然而; 我不明白怎么做。这是我所拥有的:
# Emulate inbound
_regs = dict(Foo=dict(_var_a=None, _var_b=None))
class MyMeta(type):
def __new__(cls, name, bases, dct, **kwargs):
return super(MyMeta, cls).__new__(cls, name, bases, dct)
for key, val in _regs.items():
globals()[key] = MyMeta(key, (), val)
但是val
结果是类属性,因此每个实例都Foo
使用这些属性,而不是我想要得到的结果。
解决方案
推荐阅读
- python - 如何使用python编码ÿ?
- haskell - 什么是阴谋集团地狱?
- javascript - React history.push() 不渲染新组件
- scala - 在 scala spark2 到 hbase 中运行 saveAsNewAPIHadoopDataset 时出现空指针异常
- multithreading - Springboot 多线程定时运行
- caching - IBM Bluemix 上的 Google Cloud Memcache 等效项
- c# - 更优雅的 if 语句
- selenium - Selenium 3.11、gecodriver 0.20.1、Firefox 60.0.2 显示 SessionNotCreatedException:无法找到一组匹配的功能
- bootstrap-4 - Bootstrap 下拉菜单 - 点击事件仅在第一次点击时触发
- node.js - 新的 React 项目 2.1 因 NPM ERR 而失败!418我是个茶壶