检查属性是否为SqlAlchemy hybrid_property

时间:2016-07-30 12:30:33

标签: python python-2.7 sqlalchemy

我的mixin与下面的一个相似,我需要区分normal_relationship attr和special attr。

class MyMixin(object):

  @declared_attr
  def normal_relationship(self):
    return relationship(
        "CustomAttributeValue",
        primaryjoin=my_good_join_function,
        backref='{0}_something_else'.format(self.__name__),
        cascade='all, delete-orphan',
    )

  @declared_attr
  def _special_relationship(self):
    return relationship(
        "CustomAttributeValue",
        primaryjoin=my_good_join_function,
        backref='{0}_something'.format(self.__name__),
        cascade='all, delete-orphan',
    )

  @hybrid_property
  def special(self):
    return self._special_relationship

  @special.setter
  def special(self, values):
    self._special_relationship.append(value*2)

因为special的获取者返回的_special_relationshipnormal_relationship相同,所以我不知道如何检查这种差异。

getattr(MyMixin, "special")getattr(MyMixin, "_special_relationship")相同。

有什么办法,或者我可以在特殊的混合属性中添加任何内容,以检查它是否有自定义setter。

基本上确定哪些属性定义了特殊的setter非常好。

0 个答案:

没有答案