请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师cls()是什么意思?

在scrapy的一段代码里看到cls() 怎么都理解不了是什么东西

@classmethod
    def from_settings(cls, settings):
        dbparms = dict(
            host = settings["MYSQL_HOST"],
            db = settings["MYSQL_DBNAME"],
            user = settings["MYSQL_USER"],
            passwd = settings["MYSQL_PASSWORD"],
            charset='utf8',
            cursorclass=MySQLdb.cursors.DictCursor,
            use_unicode=True,
        )
        dbpool = adbapi.ConnectionPool("MySQLdb", **dbparms)

        return cls(dbpool)

这属于类方法的什么原理?

正在回答

1回答

这个不是类方法,而就是实例化了一个类。建议可以看一下 __new__和 __init__你会有更深入的了解。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕数据3541479 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2018-03-07 09:13:57
  • 七月老师,我有点迷惑。判断一个方法是否为类方法,是通过装饰器@classmothed来确定的是不?你说这个不是类方法,而就是实例化一个类?是因为它返回了一个 cls(dbpool)是吗?可理解为cls代表当前正在实例化的类。请七月老师赐教~
    回复 有任何疑惑可以回复我~ 2018-04-25 10:20:54
  • 7七月 回复 七月之家 #3
    要不是类方法,要不是静态方法,要不就是实例方法。只有这3种。
    回复 有任何疑惑可以回复我~ 2018-04-25 15:10:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信