首页 > 如何在一个 python 类实例内部得到并使用实例所在的类的名字或者类本身?

如何在一个 python 类实例内部得到并使用实例所在的类的名字或者类本身?

如何在一个 python 类实例内部得到并使用实例所在的类的名字或者类本身?

sqlalchemy

class Article(db.Model):
    __tablename__ = 'articles'

    @property
    def count(self):
        result = db.session
                   .query(??, Association)
                   .filter(??.id == Association.article_id)
                   .filter(??.id = self.id)
                   .count()
        return result

?? 这个地方换成 Article 本身,应该使用什么方式得到类的名字??

这段代码如果放在 controller 里面大致是这样:

session.query(Article, Association)
       .filter(Article.id == Association.article_id)
       .filter(Article.id == 4)
       .count()

想把他放到 Model 里面


self.__class__, self.__class__.__name__


如果只是 class 内使用 class 本身,那么可以用 classmethod 方法包装。大概代码如下:

class Article(db.Model):
    __tablename__ = 'articles'

    @classmethod
    def count(cls, id):
        result = db.session
                   .query(cls, Association)
                   .filter(cls.id == Association.article_id)
                   .filter(cls.id = id)
                   .count()
        return result

没有测试过,题主可以自己测下

【热门文章】
【热门文章】