如何在一个 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
没有测试过,题主可以自己测下