python中cls和self的用法与区别

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方法的返回值。

你可能感兴趣的:(Python开发教程,python,开发语言)