python中self表示类的实例化对象,cls表示类本身,classmethod修饰的类方法中可以通过cls来实例化对象,如下所示:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 定义学校类
class School(object):
def __init__(self, name, loc):
self.name = name
self.loc = loc
# 返回类的实例对象
@classmethod
def get_school_instance(cls):
# cls()等价于School()
s = cls("high school", "wuxi")
return s
if __name__ == '__main__':
school = School.get_school_instance()
print(school.name, school.loc)
一般来说,一个类首先会调用new方法生成该类的实例化对象,所以init方法的第一个参数self便是new方法的返回值。