github.com/miguelgrinberg/microblog/blob/master/app/models.py # line 19
全文搜索的类变量里,传的 cls 是什么意思?不是太理解:
class SearchableMixin(object):
@classmethod
def search(cls, expression, page, per_page):
ids, total = query_index(cls.__tablename__, expression, page, per_page)
if total == 0:
return cls.query.filter_by(id=0), 0
when = []
for i in range(len(ids)):
when.append((ids[i], i))
return cls.query.filter(cls.id.in_(ids)).order_by(
db.case(when, value=cls.id)), total
......
1
Trim21 2020-04-10 00:25:03 +08:00 1
这不是 flask 的内容,是 python 面向对象的内容
这个函数是一个 classmethod,cls 是调用这个方法的那个类,可能是 SearchableMixin,可能是某个继承了 SearchableMixin 的类 |
2
miniyao OP |
3
vivipure 2020-04-10 09:49:50 +08:00
我的理解就是 相当与 self
|
4
shawndev 2020-04-10 09:57:04 +08:00
实例方法第一个参数是 self,类方法第一个参数是当前的类( class )
|
5
wuyifar 2020-04-10 11:24:32 +08:00
就跟 self 是一样的,self 是当前的实力对象,cls 是当前的类对象
|