sqlalchemy - 如何在一个 python 类实例内部得到并使用实例所在的类的名字或者类本身?
大家讲道理
大家讲道理 2017-04-17 13:49:20
[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 里面

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
天蓬老师

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号