【问题标题】:Elixir reflection灵药反射
【发布时间】:2010-10-21 22:14:33
【问题描述】:

我定义了一些可以正常工作的实体;对于元编程问题。我现在需要反映模型中定义的字段属性。

例如:

class Foo(Entity):
      bar = OneToMany('Bar')
      baz = ManyToMany('Baz')

设置了哪种类型的关系:“ManyToMany”、“OneToMany”甚至是普通的“Field”,以及关系目标?

是否有任何简单的方法来反映 Elixir 实体?

【问题讨论】:

    标签: python sqlalchemy pylons python-elixir


    【解决方案1】:

    你可以像在 Python 中的任何地方一样在 Elixir 中进行自省——使用 dir(Foo) 获取 class Foo 的所有属性名称,使用 getattr(Foo, thename) 提取属性名称,使用 @ 检查属性的类型987654324@ 或isinstance 等。作为属性传递给任何Relationship 子类(包括OneToManyManyToMany)的构造函数的字符串'Bar' 最终作为结果的r.of_kind 属性关系子类的实例 r。

    Python 标准库中的模块inspect 可能是一种更友好的自省方式,但在许多情况下 dir / getattr / isinstance &c 是完全可以接受的。

    【讨论】:

      猜你喜欢
      • 2016-10-12
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多